如a表中有个name字段、我要在执行insert时 如果name插入的值是'张三' 就要改成'李四'
用触发器实现、求高手写个触发器、、、
用触发器实现、求高手写个触发器、、、
解决方案 »
- SQLServer SQL语句 和 Orcale语句转换问题
- ORACLE随机记录抽取
- 存储过程中比较两个字符串相等!!!
- oracle存储过程的动态游标出错
- oracle数据库如何调优
- 一个奇怪的查询现象,高手请进
- 无法进入oracle enterprise manager console
- 请问user_TABLESPACES和dba_TABLESPACES有什么区别吗?
- 这样SQL语句怎么写?
- developer/2000是否就是oracle网站上的Oracle Developer Suite for Windows ?
- 导入导出数据
- 不显示删除回复显示所有回复显示星级回复显示得分回复 巨有挑战的现实工作中的问题,高手勿绕行,直接进来。40分,不够再加。
before insert
on A for each rowbegin
if :new.name = '张三'
then
:new.name := '李四';
end if;end;
before insert
on A for each rowbegin
if :new.name = '张三'
then
:new.name := '李四';
end if;end;
create or replace trigger TRI_T_a
before insert on a
for each rowbegin
if :new.name = '张三'
then
:new.name := '李四';
else if :new.name = '王五'
then
:new.name := '李四';
end if;end;
这样就错了 为什么呢
每个if都需要一个END IF相匹配。begin
if :new.name = '张三'
then
:new.name := '李四';
else if :new.name = '王五'
then
:new.name := '李四';
end if;
:new.name := '李四';
end if;
end;
CREATE OR REPLACE TRIGGER xtest
BEFORE INSERT ON test FOR EACH ROW
BEGIN
IF :NEW.urname='张三' THEN
:NEW.urname:='李四';
END IF;
END;
CREATE OR REPLACE TRIGGER TESTATRIGGER2
BEFORE INSERT ON TESTA FOR EACH ROW
BEGIN
IF :NEW.COL1=1 THEN
:NEW.COL1=2;
ELSIF :NEW.COL1=3 THEN
:NEW.COL1=2;
END IF;
END;
begin
if :new.name = '张三' then
update :new.name = '李四';
end if;
end