oracle触发器(insert和update写法)

Selectobject_nameFromuser_objectsWhereobject_type=’TRIGGER’;–一切触发器

办法二:

当然,还能够试试下面的句子

Select*Fromuser_triggers;–一切触发器

触发器:

触发器(trigger)是SQLserver提供给程序员和数据分析员来保证数据完整性的一种办法,它是与表事件相关的特殊的存储过程,它的履行不是由程序调用,也不是手工发动,而是由事件来触发,比如当对一个表进行操作(insert,delete,update)时就会激活它履行。触发器经常用于加强数据的完整性束缚和事务规矩等。触发器能够从DBA_TRIGGERS,USER_TRIGGERS数据字典中查到。SQL3的触发器是一个能由体系主动履行对数据库修正的句子。

触发器能够查询其他表,并且能够包含复杂的SQL句子。它们主要用于强制服从复杂的事务规矩或要求。例如:您能够根据客户当时的帐户状态,操控是否答应刺进新订单。

触发器也可用于强制引证完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所界说的联系。但是,强制引证完整性的最好办法是在相关表中界说主键和外键束缚。如果运用数据库联系图,则能够在表之间创立联系以主动创立外键束缚。

触发器与存储过程的唯一区别是触发器不能履行EXECUTE句子调用,而是在用户履行Transact-SQL句子时主动触发履行。

语法:

CREATE

TRIGGER`jony_keer`.`ins_account`AFTERINSERT

ON`jony_keer`.`t_account`

FOREACHROWBEGIN

INSERTINTO`t_user`(`userid`,`cellphone`,`account_psd`)VALUES(new.`account_id`,new.`cellphone`,new.`account_psd`);

END$$

TRIGGER触发器

`jony_keer`.`ins_account`触发器称号jony_keer是我的数据库姓名ins_account才是实际的触发器称号

AFTER表明履行条件,有BEFORE(之前)AFTER(之后)

INSERTON表明在履行了刺进操作,有INSERT/UPDATE/DELETE三种

`jony_keer`.`t_account`接下来的这个是表明触发器地点的表(能够理解为触发器在t_account表刺进一组出具后履行)

FOREACHROWBEGIN固定于法后边跟你要做的工作例如我要做的工作是在t_user表中刺进

`userid`,`cellphone`,`account_psd`三个记录

INSERTINTO`t_user`(`userid`,`cellphone`,`account_psd`)VALUES(new.`account_id`,new.`cellphone`,new.`account_psd`);

咦!new是什么玩意。。。

好吧!new其实便是t_account表中刺进的数据咱们把t_account表中刺进的account_idcellphoneaccount_psd赋值给t_user表中的useridcellphoneaccount_psd,OK!这样一个简略的触发器就做好了。
图片[1]-oracle触发器(insert和update写法)-小白之家,insert和update写法,/复杂触发器,功能数据插入是触发数据联动

//注意:new.DATA_REGION:=才是赋值

CREATE

ORREPLACETRIGGERTRIGGER_NAME

BEFOREINSERTONTABLE_NAME

FOREACHROW

DECLARE

CREATE_USER_IDVARCHAR(40);

CREATE_DATEDATE;

DH_EVENT_IDVARCHAR(50);

DATA_REGIONVARCHAR(10);

BEGIN

SELECT

USER_NAMEINTOCREATE_USER_ID

FROMlink_name

whereTRUE_NAME=:NEW.CREATER;

:new.CREATE_DATE:=SYSDATE;

:new.DH_EVENT_ID:=RAWTOHEX(SYS_GUID());

:new.DATA_REGION:=’HH’;

:new.CREATE_USER_ID:=CREATE_USER_ID;

END;

//简单触发器插入数据触发

CREATEORreplacetriggerTRIGGER_NAME

beforeinsertonTABLE_NAME

foreachrow

begin

:new.INPUT_DATE:=TO_CHAR(

sysdate,

‘yyyy-MM-ddhh24:mi:ss’

);

:new.DH_EVENT_ID:=rawtohex(sys_guid());

end;

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论