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です。