如果我这样做
ALTER TABLE cp8_sales_order_flat
ADD CONSTRAINT fk_customer
FOREIGN KEY (customer_id)
REFERENCES customers(id)
ON DELETE SET NULL
ON UPDATE CASCADE;
会说无法添加外键错误1215
如果我只是写
ALTER TABLE sales_flat_order
ADD FOREIGN KEY (customer_id) REFERENCES customers(id);
然后它添加 FK 和约束,但它被设置为:restrict。
在我看来,这将允许正确的选择连接查询,但不允许删除或更新。为什么是这样?任何修复?
更新
原因之一也可能是您用于 ON DELETE SET NULL 的列未定义为空。因此,请确保该列设置为默认 null。
这是我认为的,因为我检查了其他所有内容,类型、排序规则、长度、属性
最佳答案
我的列 customer_id 设置为不为空,而我在约束中说“删除时”设置为空,所以这就是我所说的逻辑精神 split 症,就像在我们有数千万失业人口时投票支持更多移民人们在欧洲。幸运的是,在这里我可以重写约束,但在政治上却不是这样。
关于mysql - 添加外键时,如果指定约束则不会添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44355542/