0

如果我有这个结构:

表用户

id_user
1
2

表列表

id_lists    name_list   users_id_user
    1           Work              1
    2           work              2

list_has_users

users_id_user   lists_id_lists
    1                      2
    2                      1

我想要的是,删除时id_lists,我还想删除该列表中的所有用户list_has_users

例如,如果我删除id_lists 1lists_id_lists 1也应该删除。

目前我得到:Cannot delete or update a parent row

如何解决这个问题?

4

2 回答 2

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在 id 更改时行lists更改。

于 2012-04-20T18:41:51.303 回答
0

在删除之前,lists您必须删除,lists_has_users因为您似乎启用了完整性检查。

于 2012-04-20T18:21:01.427 回答