【发布时间】:2019-07-30 02:12:11
【问题描述】:
如果已经存在,我正在尝试使用触发器更新条目。我想检查一个条目是否存在更新,如果不存在则插入。当我尝试插入新条目时出现错误:'无法更新存储函数/触发器中的表,因为它已被调用此存储函数/触发器的语句使用。
DELIMITER //
CREATE TRIGGER check_table_before_insert BEFORE INSERT ON Songs FOR EACH ROW BEGIN IF NEW.PageURL =(
SELECT
Songs.PageURL
FROM
Songs
WHERE
Songs.PageURL = NEW.PageURL
) THEN
UPDATE
Songs
SET
Songs.Title = NEW.Title,
Songs.Album = NEW.Album,
Songs.Label = NEW.Label,
Songs.Release_Date = NEW.Release_Date,
Songs.PageURL = NEW.PageURL,
Songs.IsSingle = NEW.IsSingle,
Songs.Code = NEW.Code,
Songs.ImageURL = NEW.ImageURL,
Songs.Link_320 = NEW.Link_320,
Songs.Link_128 = NEW.Link_128,
Songs.Link_48 = NEW.Link_48,
Songs.AlbumURL = NEW.AlbumURL
WHERE
Songs.PageURL = NEW.PageURL;
END IF;
END;
// DELIMITER;
【问题讨论】:
-
在触发器中没有办法避免这个错误。
标签: mysql sql mysql-workbench