触发器简单问题
我想做一个简单的触发器,delete一个表,如果所有记录被删空以后就新加一条记录,怎么写都不对,能通过,但是一执行delete就出错,大虾教教我
DROP TABLE testtrigger;
CREATE TABLE testtrigger (
zm_id INTEGER,
zm VARCHAR2(40) NOT NULL
);
insert into testtrigger (zm_id,zm) values('1','test1');
create or replace trigger my_tri before delete on testtrigger for each row
declare
v_count int;
begin
SELECT count(*) into v_count FROM testtrigger;
if v_count = 0 then
insert into testtrigger(zm_id,zm) values('2','test2');
end if;
end;
问题点数:50、回复次数:6Top
1 楼mycode(不写代码)回复于 2002-06-11 15:50:35 得分 0
这样做,采用触发器是不行的。Top
2 楼bzszp(SongZip)回复于 2002-06-11 16:14:17 得分 0
可以对表进行随时监测,监测为空时进行插入.Top
3 楼bzszp(SongZip)回复于 2002-06-11 16:16:19 得分 0
可以对表进行随时监测,监测为空时进行插入.Top
4 楼ATCG(novel gene)回复于 2002-06-11 16:19:06 得分 0
create or replace trigger TEST
去试试吧,兄弟
after delete on TABLE
DECLARE
V_TEMP NUMBER;
begin
SELECT ID INTO V_TEMP FROM TABLE WHERE ROWNUM<=1;
exception
when NO_DATA_found then
INSERT INTO TABLE VALUES(88);
end TEST;
/Top
5 楼ATCG(novel gene)回复于 2002-06-11 16:22:10 得分 0
sorry 应该是这样
create or replace trigger TEST
after delete on TABLE
DECLARE
V_TEMP NUMBER;
begin
SELECT count(*) INTO V_TEMP FROM TABLE;
exception
when NO_DATA_found then
INSERT INTO TABLE VALUES(88);
end TEST;
/
Top
6 楼ATCG(novel gene)回复于 2002-06-11 16:23:49 得分 50
SORRY 再次更改,有点急!
create or replace trigger TEST
after delete on TABLE
DECLARE
V_TEMP NUMBER;
begin
SELECT count(*) INTO V_TEMP FROM TABLE;
if v_temp=0 then
INSERT INTO TABLE VALUES(88);
end if;
end TEST;
/
Top
7 楼zhou1977(短笛)回复于 2002-06-11 16:37:25 得分 0
果然如此,谢谢大家Top




