0

私がこの構造を持っている場合:

テーブルユーザー

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 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

IDが変更された場合に行が変更ON UPDATE CASCADEされるように、追加することもできます。lists_has_userslists

于 2012-04-20T18:41:51.303 に答える
0

整合性チェックが有効になっているように見えるため、listsから削除する前にから削除する必要があります。lists_has_users

于 2012-04-20T18:21:01.427 に答える