0

General 1005, Can't create tableを使用して外部キー制限を設定しようとすると、エラーが発生しON DELETE SET NULLます。

ONDELETERESTRICTまたはCASCADEで外部キーを問題なく設定できます

ALTER TABLE `users` 
    ADD CONSTRAINT users_domain_id_foreign 
    FOREIGN KEY (`domain_id`) 
    REFERENCES `domains` (`id`) 
    ON DELETE RESTRICT 
    ON UPDATE CASCADE

ただし、削除時にnullを設定する必要がありますが、これは機能しません。スロー1005で外部キーを設定すると、ON DELETE SET NULL上記のようにテーブルエラーを作成できません。なぜこれが機能しないのか、誰かが光を当てることができますか?

ALTER TABLE `users` 
    ADD CONSTRAINT users_domain_id_foreign 
    FOREIGN KEY (`domain_id`) 
    REFERENCES `domains` (`id`) 
    ON DELETE SET NULL 
    ON UPDATE CASCADE

(mySQL 5.5.24、すべてのテーブルはInnoDBです)

追加:誰かが尋ねた場合に備えて、domain_idは符号なし整数であり、インデックスです。参照idされるのは自動インクリメントされたIDです。

4

0 に答える 0