无法将外键约束添加为GUID

时间:2015-12-30 11:11:36

标签: mysql sql

我正在尝试将$_SERVER['HTTP_AUTHORIZATION'] 作为GUID关联到我的表curl http://127.0.0.1:8080/test.php -u arun:12345 ,这是查询:

Basic YXJ1bjoxMjM0NQ==

这是我的表结构FK

service_categories

这是我的ALTER TABLE `services` ADD CONSTRAINT `services_ibfk_1` FOREIGN KEY (`guid_service_categories`) REFERENCES `service_categories` (`GUID`) ON DELETE SET NULL ON UPDATE CASCADE;

service

我收到此错误:

  

无法添加外键约束

当我执行alter时,我做错了什么?谢谢,祝节日快乐!

1 个答案:

答案 0 :(得分:3)

问题是密钥定义中的ON DELETE SET NULLFrom MySQL doc

  

如果指定SET NULL操作,请确保尚未声明   子表中的列为NOT NULL。

如果根据定义列不能为NULL,则无法在SET NULL上使用ON DELETE

如果将alter语句更改为RESTRICT或CASCADE:

ALTER TABLE `services`
ADD CONSTRAINT `services_ibfk_1` FOREIGN KEY (`guid_service_categories`) REFERENCES `service_categories` (`GUID`) ON DELETE CASCADE ON UPDATE CASCADE;

或允许NULL值的列定义,它将起作用。

相关问题