Oracle 使用触发器更改插入值
几周前我刚刚开始学习SQL,我正在尝试制作一个触发器,如果插入值小于10,则将其更改为10。我现在搜索了4小时,找到了很多答案,但没有一个是好的(对我来说)。我真的不明白问题出在哪里。 代码如下:Oracle 使用触发器更改插入值,oracle,plsql,database-trigger,Oracle,Plsql,Database Trigger,几周前我刚刚开始学习SQL,我正在尝试制作一个触发器,如果插入值小于10,则将其更改为10。我现在搜索了4小时,找到了很多答案,但没有一个是好的(对我来说)。我真的不明白问题出在哪里。 代码如下: CREATE OR REPLACE TRIGGER NumberOfBooks BEFORE INSERT ON Book FOR EACH ROW BEGIN IF new.nobook < 10 THEN SET new.nobook = 10; END IF; E
CREATE OR REPLACE TRIGGER NumberOfBooks
BEFORE INSERT
ON Book
FOR EACH ROW
BEGIN
IF new.nobook < 10
THEN
SET new.nobook = 10;
END IF;
END;
创建或替换触发器号码簿
插入前
在书上
每行
开始
如果是new.nobook<10
然后
设置new.nobook=10;
如果结束;
结束;
在Oracle的触发器语法中,新插入的记录指的是:new
,而不是new
(注意冒号)。此外,SET
是update语句的一部分,不是设置字段值的方法-这些都是通过简单的赋值来完成的,但请注意,这些赋值是通过:=
而不是=
完成的。
因此,触发器应为:
创建或替换触发器号码簿
插入前
在书上
每行
开始
IF:new.nobook<10
然后
:new.nobook:=10;
如果结束;
结束;
您遇到了什么错误?错误(8,9):PL/SQL:ORA-00922:缺少或无效选项,并且设置了new.nobook=10下划线非常感谢!我已经编辑了代码,一切都很顺利。救生员。我需要使用:=