【发布时间】:2016-11-11 00:08:19
【问题描述】:
我想知道是否有人可以帮助我将更新前触发器从 MySQL 转换为 SQLite。这是 MySQL 触发器:
CREATE TRIGGER trigger_name
BEFORE UPDATE ON `table_name`
FOR EACH ROW
BEGIN
IF (NEW.fk IS NOT NULL AND NEW.status < 50)
THEN
BEGIN
DECLARE obj_count INT(11);
SELECT COUNT(*)
INTO obj_count
FROM (SELECT id FROM table_name
WHERE `status` < 50 AND fk = NEW.fk
LIMIT 1) AS objs;
IF (obj_count > 0)
THEN
SIGNAL SQLSTATE '23000' SET MESSAGE_TEXT = "Error.";
END IF;
END;
END IF;
END
我的理解是 SIGNAL 语句需要像这样重写:SELECT RAISE(ABORT, 'Error.')
但还有其他我很难理解的语法错误。
【问题讨论】: