create or replace trigger tg_java5_backup after --执行sql之后执行--before是事前触发器,after是事后触发器 insert or update or delete --增、删、改都触发 on java5 for each row--行级触发器 declare begin if inserting then insert into java5_back(id,name,gz)values(:new.id,:new.name,:new.gz); elsif updating then update java5_back set id=:new.id,name=:new.name,gz=:new.gz; elsif deleting then delete from java5_back where id=old.id; end if; exception when others then raise_application_error(-20003, '备份失败'); end;
时间: 2024-04-10 17:30:31 浏览: 51
这是一个用于在插入、更新或删除Java5表的行级触发器的示例代码。每当执行这些操作后,触发器将在java5_back表中创建相应的备份。
触发器的名称是tg_java5_backup,它会在每个行级别的操作后执行。在触发器的声明部分,我们指定了触发器应该响应的操作类型。
在触发器的主体部分,我们使用条件语句判断正在执行的操作类型。如果是插入操作,则将新记录的id、name和gz值插入到java5_back表中。如果是更新操作,则将java5_back表中与旧记录id相匹配的记录更新为新记录的值。如果是删除操作,则从java5_back表中删除与旧记录id相匹配的记录。
最后,我们添加了一个异常处理部分,以处理任何其他异常情况。在这种情况下,我们使用raise_application_error函数引发一个自定义错误消息。
请注意,这只是一个示例触发器,你可以根据需要进行修改和适应。
相关问题
为什么我学的触发器是create trigger trigger_name on table_name for insert
您学习的触发器语法是旧版本的 SQL Server 触发器语法,适用于 SQL Server 2000 和更早的版本。在 SQL Server 2005 和之后的版本中,触发器语法发生了变化,变成了如下的形式:
```
CREATE TRIGGER trigger_name
{BEFORE | AFTER} {INSERT | UPDATE | DELETE} ON table_name
[FOR EACH ROW]
trigger_body
```
这种语法与您提到的旧版本语法有所不同,主要在于 `create trigger` 和 `on` 关键字的去除,以及 `for` 关键字的替换为 `before` 或 `after` 等。新版本的语法更加简洁、易于理解和使用,同时也增加了一些新特性,如支持 `INSTEAD OF` 触发器等。
因此,建议您尽量使用新版本的触发器语法,以便更好地适应现代的数据库开发需求。
CREATE TRIGGER TR_Borrow_insert_1_Booknum_exits ON Borrow AFTER insert
该代码片段是用于在数据库表"Borrow"插入数据后触发的触发器(trigger)的创建语句。
触发器名称为"TR_Borrow_insert_1_Booknum_exits",它被定义在表"Borrow"上,当有新数据插入到该表时触发。
然而,您提供的代码片段并不完整,缺少了触发器的具体逻辑和操作。如果您可以提供完整的代码片段或更具体的问题,我将尽力提供更详细的分析和解答。