如果我有这种结构:
表用户
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
。
目前我得到:Cannot delete or update a parent row
如何解决这个问题?
答案 0 :(得分:2)
似乎您定义了FOREIGN KEY
约束来强制执行参照完整性,并禁止您在子项存在时删除父行。修改外键以包含ON DELETE CASCADE
以强制删除子行。
如果您不知道,请使用DESCRIBE lists_has_users
获取FK的符号。
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_has_users
行在lists
的ID发生变化时发生变化。
答案 1 :(得分:0)
从lists
删除之前,您必须从lists_has_users
删除,因为您似乎已启用完整性检查。