我正在尝试将$_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时,我做错了什么?谢谢,祝节日快乐!
答案 0 :(得分:3)
问题是密钥定义中的ON DELETE SET NULL
。 From 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值的列定义,它将起作用。