编写触发器以防止使用 sqlite 删除某些行

writing trigger that prevent the deletion of some rows with sqlite

我有两个 table(曲目和专辑),并希望使用此触发器防止删除专辑标题为 'Lost' 的某些曲目,但代码适用于所有曲目 ID我认为。我无法删除任何曲目(曲目ID是曲目table的主键,albumid是曲目中专辑table的外键)

我的代码有什么问题?请帮忙!

谢谢

CREATE TRIGGER Undeletelosttracks AFTER DELETE ON Track 
BEGIN
SELECT CASE
WHEN OLD.TrackID = (SELECT Track.TrackID FROM
Track JOIN Album USING(AlbumID)
WHERE Album.Title LIKE 'Lost%'
)
THEN
 RAISE(ABORT,'Can not delete')
END;
END;

我很惊讶你说你的触发器不允许从你的 table 中删除任何内容。
根据我的尝试,它不会阻止任何删除。
使用此触发器:

CREATE TRIGGER Undeletelosttracks BEFORE DELETE ON Track
FOR EACH ROW
WHEN EXISTS (
  SELECT 1 
  FROM Album a
  WHERE a.AlbumID = OLD.AlbumID AND a.Title LIKE 'Lost%'
)
BEGIN      
  SELECT RAISE(ABORT,'Can not delete'); 
END;