2016-08-14 22 views
0

here is my table structure外部キー制約が正しく形成されている[同じテーブル]

私はparent_forumが同じテーブルID列の値のIDである親トピックのIDを保存することになるたいです。ご覧のとおり、両方の列に同じタイプがあります。私のテーブルエンジンはInnoDBです。次のクエリを試して制約を追加してみます。

ALTER TABLE `forums` ADD CONSTRAINT `parent_forum constraint` FOREIGN KEY (`id`) REFERENCES `codeigniter`.`forums`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT; 

となり、タイトルに記載されているエラーが発生します。 ここで実際に何が間違っていますか? Category_idは他のテーブルID値と正常に動作します。

答えて

1

私は、これはあなたが探している構文であると思う:

ALTER TABLE forums ADD CONSTRAINT parent_forum_constraint 
    FOREIGN KEY (parent_forum) REFERENCES codeigniter.forums(id) 
     ON DELETE RESTRICT ON UPDATE RESTRICT; 

カッコ内の列がreferences後の列を参照するものです。また、本当に良い理由がない限り、名前にスペースを入れないでください。すべてのバッククックがなければ、コードははるかに読みやすくなります。

+0

ありがとうございました。私は実際にこの制約を作成するためにphpmyadminリレーショナルビューを使用していました。 – user3111627

関連する問題