作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我一直在网上搜索如何在 sqlite 中使用“触发前”。我正确地知道使用“触发后”。我发现有人说“触发前”用于在对数据库进行任何更改(插入/更新表中的行)之前进行验证。为了清除表达式,我写了一个触发器,其中类型是 before 并且 event 是 insert 以在插入之前验证标记。我的触发器是
create trigger mark_insert before insert on exam
when mark<=50
begin
insert into exam(mark) values(50);
end;
可能是错误的触发器。那么,您能指出其中的错误吗?我想检查标记是否小于或等于 50。如果是,我想插入默认值(在本例中为 50)。对sql和trigger不是很熟悉,开始学习。
我的考试表有以下列,
id(pk) | subject | mark
最佳答案
如果要检查标记是否小于等于50
CREATE TRIGGER trigger_min_mark AFTER INSERT ON exam
WHEN New.mark<=50
BEGIN
UPDATE exam SET mark=50 WHERE id = New.id;
END
请注意,在 when
语句中,您必须指定 New.ColumnName
关于sqlite - 如何在sqlite中插入触发器之前进行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8173520/
我是一名优秀的程序员,十分优秀!