1.触发器的错误使用
错误
–建立触发器函数
create or replace function fun2()
returns trigger
as
b
e
g
i
n
d
e
l
e
t
e
f
r
o
m
病
例
行
程
信
息
表
w
h
e
r
e
病
例
号
=
n
e
w
.
病
例
号
;
r
e
t
u
r
n
n
e
w
;
e
n
d
;
begin delete from 病例行程信息表 where 病例号 = new.病例号; return new; end;
begindeletefrom病例行程信息表where病例号=new.病例号;returnnew;end; language plpgsql;
–建立触发器
create trigger delete_trigger after delete on 病例基本信息表 for each row
execute procedure fun2();
错误
–建立触发器函数
create or replace function fun2()
returns trigger
as
b
e
g
i
n
d
e
l
e
t
e
f
r
o
m
病
例
行
程
信
息
表
w
h
e
r
e
病
例
号
=
o
l
d
.
病
例
号
;
r
e
t
u
r
n
o
l
d
;
e
n
d
;
begin delete from 病例行程信息表 where 病例号 = old.病例号; return old; end;
begindeletefrom病例行程信息表where病例号=old.病例号;returnold;end; language plpgsql;
–建立触发器
create trigger delete_trigger before delete on 病例基本信息表 for each row
execute procedure fun2();
delete from 病例基本信息表 where 病例号 = ‘1’;
select * FROM 病例基本信息表 where 病例号=‘1’ or 病例号 =‘2’;
select * from 病例行程信息表 where 病例号 =‘1’ or 病例号 =‘2’;
insert into 病例基本信息表
values(‘1’,‘河北省’,‘石家庄市’,‘藁城区’,‘2021-1-20’,
‘女’,54,‘确诊病例1:女,54岁,藁城区增村镇南桥寨村人,为1月17日第13号确诊病例的妻子。’,
‘暂无’,‘河北日报’
)
drop trigger delete_trigger on 病例基本信息表 ;
错误
create or replace function fun2()
returns trigger
as
b
e
g
i
n
d
e
l
e
t
e
f
r
o
m
病
例
行
程
信
息
表
w
h
e
r
e
病
例
号
=
o
l
d
.
病
例
号
;
r
e
t
u
r
n
n
e
w
;
e
n
d
;
begin delete from 病例行程信息表 where 病例号 = old.病例号; return new; end;
begindeletefrom病例行程信息表where病例号=old.病例号;returnnew;end; language plpgsql;
–建立触发器
create trigger delete_trigger before delete on 病例基本信息表 for each row
execute procedure fun2();
错误
–建立触发器函数
create or replace function fun2()
returns trigger
as
b
e
g
i
n
d
e
l
e
t
e
f
r
o
m
病
例
行
程
信
息
表
w
h
e
r
e
病
例
号
i
n
(
s
e
l
e
c
t
病
例
号
f
r
o
m
d
e
l
e
t
e
d
)
;
r
e
t
u
r
n
o
l
d
;
e
n
d
;
begin delete from 病例行程信息表 where 病例号 in(select 病例号 from deleted); return old; end;
begindeletefrom病例行程信息表where病例号in(select病例号fromdeleted);returnold;end; language plpgsql;
–建立触发器
create trigger delete_trigger before delete on 病例基本信息表 for each row
execute procedure fun2();
错误
–建立触发器函数
create or replace function fun2()
returns trigger
as
b
e
g
i
n
d
e
l
e
t
e
f
r
o
m
病
例
行
程
信
息
表
w
h
e
r
e
病
例
号
i
n
(
s
e
l
e
c
t
病
例
号
f
r
o
m
d
e
l
e
t
e
d
)
;
r
e
t
u
r
n
n
e
w
;
e
n
d
;
begin delete from 病例行程信息表 where 病例号 in(select 病例号 from deleted); return new; end;
begindeletefrom病例行程信息表where病例号in(select病例号fromdeleted);returnnew;end; language plpgsql;
–建立触发器
create trigger delete_trigger after delete on 病例基本信息表 for each row
execute procedure fun2();
–建立触发器函数
create or replace function fun2()
returns trigger
as
b
e
g
i
n
d
e
l
e
t
e
f
r
o
m
病
例
行
程
信
息
表
w
h
e
r
e
病
例
号
i
n
(
s
e
l
e
c
t
病
例
号
f
r
o
m
o
l
d
.
d
e
l
e
t
e
d
)
;
r
e
t
u
r
n
n
e
w
;
e
n
d
;
begin delete from 病例行程信息表 where 病例号 in(select 病例号 from old.deleted); return new; end;
begindeletefrom病例行程信息表where病例号in(select病例号fromold.deleted);returnnew;end; language plpgsql;
–建立触发器
create trigger delete_trigger after delete on 病例基本信息表 for each row
execute procedure fun2();
–建立触发器函数
create or replace function fun2()
returns trigger
as
b
e
g
i
n
d
e
l
e
t
e
f
r
o
m
病
例
行
程
信
息
表
w
h
e
r
e
病
例
号
i
n
(
s
e
l
e
c
t
病
例
号
f
r
o
m
o
l
d
)
;
r
e
t
u
r
n
o
l
d
;
e
n
d
;
begin delete from 病例行程信息表 where 病例号 in(select 病例号 from old); return old; end;
begindeletefrom病例行程信息表where病例号in(select病例号fromold);returnold;end; language plpgsql;
–建立触发器
create trigger delete_trigger before delete on 病例基本信息表 for each row
execute procedure fun2();