0

当我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。

4

0 回答 0