我试图创建一个名为UndeleteU2Track的触发器。此触发器的目标是取消删除跟踪表中与艺术家是U2的专辑相关联的任何曲目的效果。关键在于触发器不会停止删除,但通过重新创建完全相同的一行或多行删除的曲目或曲目来取消其效果。此外,触发忽略的轨道,与U2SQL触发器取消删除效果
这里没有关联的缺失是我的代码:
CREATE TRIGGER UndeleteU2Track BEFORE DELETE ON Track
BEGIN
SELECT CASE
WHEN OLD.TrackID IN (
SELECT t.TrackID
FROM Track AS t, Album AS a
WHERE t.AlbumID == a.AlbumID AND a.ArtistID ==
(SELECT ArtistID From Artist WHERE Name == "U2"))
THEN
INSERT INTO Track Values
(OLD.TrackID, OLD.Name, OLD.AlbumID, OLD.MediaTypeID,
OlD.GenreID, OLD.Composer, OLD.Millisecond, OLD.Byte, OLD.UnitPrice);
END;
END;
我有语法错误。
咦?这是一些非常奇怪的家庭作业吗? –
触发器的反应性使得它们在最佳时刻成为维护关注点。这只是乞求麻烦。我强烈建议你重新考虑你的方法。 –