如果我有这个结构:
表用户
id_user
1
2
表格列表
id_lists name_list users_id_user
1 Work 1
2 work 2
lists_has_users
users_id_user lists_id_lists
1 2
2 1
我想要的是,当删除id_lists
时,我还想删除list_has_users
中该列表成员的所有用户
例如,如果我删除 id_lists 1
,则 lists_id_lists 1
也应该被删除。
此刻我得到:无法删除或更新父行
如何解决这个问题?
最佳答案
似乎您定义了一个 FOREIGN KEY
约束,该约束强制执行引用完整性,并禁止您在存在子行时删除父行。修改您的外键以包含 ON DELETE CASCADE
以强制删除子行。
如果您不知道 FK 的符号,请使用 DESCRIBElists_has_users
获取它。
ALTER TABLE lists_has_users DROP FOREIGN KEY `key_symbol`;
ALTER TABLE lists_has_users ADD FOREIGN KEY (lists_id_lists) REFERENCES lists (id_lists) ON DELETE CASCADE
您可能还想添加 ON UPDATE CASCADE
,以便在 lists
的 id 发生变化时 lists_has_users
行也会发生变化。
关于mysql - 删除表的子行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10251398/