我正在修改当前的数据库架构。我想删除一对一关系的子端,但我不断收到有关外键限制的 SQL 错误,具体来说:
#1217 - Cannot delete or update a parent row: a foreign key constraint fails
尽管目前似乎没有任何外键在起作用(子表完全是空的)。
有什么想法吗?
最佳答案
首先,从引用(子)表中删除外键约束,然后删除引用(父)表。
例如:
ALTER TABLE child
DROP FOREIGN KEY FK_child_parent ;
DROP TABLE parent ;
(显然,您需要将“child”、“parent”和“FK_child_parent”替换为表和外键约束的实际标识符。
获取外键约束名称的一种简单方法是使用 SHOW CREATE TABLE
语句,
SHOW CREATE TABLE child ;
输出将显示外键约束的名称。
如果您不知道哪些表有引用该表的外键,可以查询information_schema.referential_constraints
表来查找它们
WHERE referenced_table_name = 'parent'
AND constraint_schema = 'mydatabase'
关于MySQL - 尝试删除一对一关系的一侧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25046759/