照我的理解应该就是一个触发器吧
我向这样写大家看可以吗?
create or raplace trigger temp_air
after insert on TEST
for each row
when .......
begin
update from TEST set tag =0;
end;
/
就是那个when的条件应该如何写啊?
我向这样写大家看可以吗?
create or raplace trigger temp_air
after insert on TEST
for each row
when .......
begin
update from TEST set tag =0;
end;
/
就是那个when的条件应该如何写啊?
解决方案 »
- 向大家请教个关于decode函数的问题
- 从2,3个表中查询数据,添加到另外一张表的procedure 或function怎么写?
- 又是一个imp的问题。
- 怎样减小Oracle9I数据库回滚表空间的大小?
- SQL 中什么函数可以实现数字转字符串?
- linux下的oracle9i数据库建好以后能够修改数据库的sid号和全局名吗?
- 为什么在ORACLE9中找不到PROC
- 请问参数为一个数组的函数,怎么运行呀? 200份求教。急
- exp 和 imp 的命令格式是怎样写的?是在sqlplus下写的吗?谢了!
- sqlplus连不上oracle的问题?
- 求索引语句两问1)表中无索引,新建一索引如何写2)表中已有两个索引,再新建一和前两者结合的索引语句怎么写
- 如何将按秒记的时间转换成日期格式的时间?
create or raplace trigger temp_air
after insert on TEST
for each row
DECLARE
idExist NUMBER(1,0):=0;
begin
SELECT COUNT(*) INTO idExist
FROM 你的表名
WHERE ID=:NEW.ID;
IF snoExist!=0
THEN update TEST set tag =0 where ID=:NEW.ID;
END IF;
end;
你的标点符号不对?那些;都不对啊
2 after insert on TEST
3 for each row
4 DECLARE
5 idExist NUMBER(1,0):=0
6 begin
7 SELECT COUNT(*) INTO idExist FROM Test
8 WHERE ID=:NEW.ID
9 IF snoExist!=0
10 THEN update TEST set tag =0 where ID=:NEW.ID;
create or raplace trigger temp_air
*
ERROR 位于第 1 行:
ORA-00905: 缺少关键字
SQL> END IF
SP2-0042: 未知命令"END IF" -- 其余行忽略。
SQL> end;
SP2-0042: 未知命令"end" -- 其余行忽略。
create or replace trigger temp_air
after insert on TEST
for each row
DECLARE
idExist NUMBER(1,0):=0;
begin
SELECT COUNT(*) INTO idExist
FROM TEST
WHERE ID=:NEW.ID;
IF idExist!=0
THEN update TEST set tag =0 where ID=:NEW.ID;
END IF;
end;
但是我还是遇到一个问题。我在执行 insert into test values (1,'saf',0);的时候
报错了ERROR 位于第 1 行:
ORA-04091: 表 SYSTEM.TEST 发生了变化,触发器/函数不能读
ORA-06512: 在"SYSTEM.TEMP_AIR", line 4
ORA-04088: 触发器 'SYSTEM.TEMP_AIR' 执行过程中出错
这是什么原因?谢谢!!!
是根据id来判断?不是应该写为WHERE name=:NEW.name;???
呵呵,不好意思,我对触发器不是很了解。谢谢。打扰了
insert into test(ID,name,tag) values (1,'saf',0);