できることは、Users
にトリガーを実装することです およびTeam
次のいずれかから行が削除されるたびに実行されるテーブル:
ユーザーテーブル:
DELIMITER $$
CREATE TRIGGER user_playlist_delete
BEFORE DELETE ON User FOR EACH ROW
BEGIN
DELETE a FROM Playlist a
INNER JOIN UserPlaylist b ON a.id = b.id AND b.userId = OLD.id;
END$$
DELIMITER ;
チームテーブル:
DELIMITER $$
CREATE TRIGGER team_playlist_delete
BEFORE DELETE ON Team FOR EACH ROW
BEGIN
DELETE a FROM Playlist a
INNER JOIN TeamPlaylist b ON a.id = b.id AND b.teamId = OLD.id;
END$$
DELIMITER ;
これらのトリガーが行うことは、これらのテーブルの1つからレコードが削除されるたびにDELETE
操作はPlaylists
で自動的に実行されます id
を使用したテーブル これは(内部結合を介して)削除されようとしています。
私はこれをテストしました、そしてそれはうまくいきます。