我一直在网上搜索如何在sqlite中使用“before trigger”。我知道正确使用“后触发”。我发现那个在数据库发生任何更改(在表中插入/更新行)之前使用“之前触发器”进行验证的人。为了清除表达式,我写了一个触发器,其中的类型在之前,并且在插入之前事件被插入以验证标记。 我的触发器是如何在sqlite插入触发器之前进行验证
create trigger mark_insert before insert on exam
when mark<=50
begin
insert into exam(mark) values(50);
end;
也许这是错误的触发器。那么,请你指出我的错误吗? 我想检查标记是否小于或等于50.如果是这样,我想插入默认值(在本例中为50)。我不太熟悉sql和触发器并开始学习。
我的考试表有以下几列,
id(pk) | subject | mark
感谢您的帮助。但我得到这个错误:没有这样的列标记。 是否由于raise()?你能解释一下关于提升功能吗? 在此先感谢。 – waiyan
'raise'就是你在触发器内产生错误的方式。 http://www.sqlite.org/lang_createtrigger.html –
SELECT语句后,','是必需的。 –