当我General 1005, Can't create table
尝试使用ON DELETE SET NULL
.
我可以使用 ON DELETE RESTRICT 或 CASCADE 设置外键,没有问题
ALTER TABLE `users`
ADD CONSTRAINT users_domain_id_foreign
FOREIGN KEY (`domain_id`)
REFERENCES `domains` (`id`)
ON DELETE RESTRICT
ON UPDATE CASCADE
但是我需要它在删除时设置 null 但这不起作用。ON DELETE SET NULL
如上所述设置外键会引发 1005 can't create table 错误。谁能解释为什么这不起作用?
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。