1

私は3つのテーブルを持っています(主キーがint(7)のタイプを持つすべてのInnoDB)

tblcustomers: 主キーは customer_id です

tblorders: 主キーは order_id (order_customer という customer_id のフィールドがあります)

tblorder_detail: 主キーは order_detail_id です (order_id という order_id のフィールドがあります)

顧客を削除すると注文履歴が削除されるような関係を作りたいです。

次のステートメントを使用して Orders テーブルを変更しました。

ALTER TABLE `tblorders`
  ADD CONSTRAINT `FK_myKey` FOREIGN KEY (`order_customer`) REFERENCES `tblcustomers` (`customer_id`) ON DELETE CASCADE ON UPDATE CASCADE;

これは成功しました。顧客を削除すると、関連する注文が削除されます。

次に、次のことを試しましたが、エラーが発生しました。

ALTER TABLE `tblorder_detail`
  ADD CONSTRAINT `FK_myKey` FOREIGN KEY (`order_id`) REFERENCES `tblorders` (`order_id`) ON DELETE CASCADE ON UPDATE CASCADE

これはエラーです (wtc-ecommerce はデータベースの名前です):

1005 - テーブル 'wtc-ecommerce.#sql-5d2_c2' を作成できません (エラー番号: 121)

他のSOの投稿を読むと、すべてが正しく構成されているように見えるので、迷っています。

ありがとう

4

0 に答える 0