如何在mysql-python中将外键设置为NULL

如何在mysql-python中将外键设置为NULL,python,mysql,database,Python,Mysql,Database,我有两个表:STATE和country,country有主键作为STATE和country的组合,STATE是外键 State的country表中有一些条目在State表中不存在,所以我想将这些外键设置为null。我该怎么做?通过设置外键的null,我应该这样做吗 COUNTY State表中的条目在 状态表 如果是这种情况,则表country中的列State是引用表State中列State的外键而不是 如果要将列定义为外键,必须按如下方式执行: ALTER TABLE County ADD

我有两个表:STATE和country,country有主键作为STATE和country的组合,STATE是外键

State的country表中有一些条目在State表中不存在,所以我想将这些外键设置为null。我该怎么做?通过设置外键的null,我应该这样做吗

COUNTY State表中的条目在 状态表

如果是这种情况,则表
country
中的列
State
是引用表
State
中列
State
的外键而不是
如果要将列定义为外键,必须按如下方式执行:

ALTER TABLE County ADD CONSTRAINT fk_state FOREIGN KEY (State) REFERENCES State(State);
如果存在此外键约束,则不会有不存在状态的县,因为它们将被约束拒绝

因此,更新表
country

UPDATE County c
LEFT JOIN State s ON s.State = c.State
SET c.State = NULL
WHERE s.State IS NULL  
然后添加外键约束,这样表中就不会再出现不存在的状态。


请参阅简化的。

为什么?你会得到一个不属于州的县吗?也许告诉我们你想要实现什么,然后我们可能会建议一个更好的方法