create or replace trigger 触发器名字 before insert on 表名字 for each row declare -- local variables here begin select 序列名字.nextval into :new.contactid from dual;//触发后要处理的语句 end 触发器名字;
create or replace trigger triggername before insert or delete on A for each row begin if inserting then insert into B select * from A where id = :new.id; end if; if deleting then insert into C select * from A where id = :old.id; end if; end triggername;
UPC05070000大哥,我把你的语句增加到触发器中了,没有报错,但我用程序添加或删除记录的时候没有插入相应的记录到B、C表中啊 另外 id = :old.id;这个语句 如果我A中的主键是mail_id的话 那是不是改成Mail_id=:old.Mail_id啊?
大哥,我试了一下,这个的插入可以实现,但是删除实现不了,大家帮帮我 create or replace trigger tri_mail_send after insert or delete on mail_send for each row begin if inserting then insert into mail_send_add (mail_id,mail_from_id,mail_to_id,mail_content,mail_send_time,read_flag,garbage_flag,download_url,mail_title,file_name,need_response) values(:new.mail_id,:new.mail_from_id,:new.mail_to_id,:new.mail_content,:new.mail_send_time,:new.read_flag,:new.garbage_flag,:new.download_url,:new.mail_title,:new.file_name,:new.need_response); end if; if deleting then insert into mail_send_delete(mail_id,mail_from_id,mail_to_id,mail_content,mail_send_time,read_flag,garbage_flag,download_url,mail_title,file_name,need_response) values(:old.mail_id,:old.mail_from_id,:old.mail_to_id,:old.mail_content,:old.mail_send_time,:old.read_flag,:old.garbage_flag,:old.download_url,:old.mail_title,:old.file_name,:old.need_response); end if; end tri_mail_send;
before insert on 表名字
for each row
declare
-- local variables here
begin
select 序列名字.nextval into :new.contactid from dual;//触发后要处理的语句
end 触发器名字;
before insert or delete on A
for each row
begin
if inserting then
insert into B select * from A where id = :new.id;
end if;
if deleting then
insert into C select * from A where id = :old.id;
end if;
end triggername;
另外 id = :old.id;这个语句
如果我A中的主键是mail_id的话
那是不是改成Mail_id=:old.Mail_id啊?
create or replace trigger tri_mail_send
after insert or delete on mail_send
for each row
begin
if inserting then
insert into mail_send_add (mail_id,mail_from_id,mail_to_id,mail_content,mail_send_time,read_flag,garbage_flag,download_url,mail_title,file_name,need_response)
values(:new.mail_id,:new.mail_from_id,:new.mail_to_id,:new.mail_content,:new.mail_send_time,:new.read_flag,:new.garbage_flag,:new.download_url,:new.mail_title,:new.file_name,:new.need_response);
end if;
if deleting then
insert into mail_send_delete(mail_id,mail_from_id,mail_to_id,mail_content,mail_send_time,read_flag,garbage_flag,download_url,mail_title,file_name,need_response)
values(:old.mail_id,:old.mail_from_id,:old.mail_to_id,:old.mail_content,:old.mail_send_time,:old.read_flag,:old.garbage_flag,:old.download_url,:old.mail_title,:old.file_name,:old.need_response);
end if;
end tri_mail_send;