【发布时间】:2021-10-07 21:41:28
【问题描述】:
我有一个关于我想创建的触发器的问题,但我不确定如何执行此操作。
我有一个表 2017_state_data,它包含每个州的一些财务指标以及所述州名。现在重要的是状态名称始终正确(并且状态当然存在),我想创建一个触发器,如果“状态”的值与状态名称(来自另一个表)不一致,那么它应该给出“Unknown state in entry”的警告信息。 我不完全确定如何引用不同表中的列以在触发器中使用,我希望有人可以帮助我。
我创建的触发器如下,但这不起作用,并给我留下“输入不完整”错误。
CREATE TRIGGER sureState
BEFORE INSERT ON 2017_state_data
FOR EACH ROW
WHEN NEW.State != (SELECT StateName FROM States)
BEGIN SELECT RAISE(ABORT, "Unknown state in entry")
END;
提前感谢您的所有帮助。
【问题讨论】:
-
我不精通 SQLite,但请尝试将“!=”更改为“不在”。您正在尝试将单个值与整个表进行比较。看看这是否有效。
-
不幸的是,我仍然遇到同样的错误。
标签: sqlite triggers foreign-keys referential-integrity