当前位置:首页 » 网络管理 » mysql怎么删除触发器
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

mysql怎么删除触发器

发布时间: 2023-02-19 05:29:38

① 写入mysql数据库的触发器是怎么修改

drop TRIGGER [触发器名]--删除触发器
go
CREATE TRIGGER [触发器名] ON [表名] --创建触发器
FOR insert
AS
--写你要执行的代码

② mysql如何用触发器禁止某条记录的删除、修改

mysql用触发器禁止某条记录的删除、修改:

delimiter //

CREATE TRIGGER xx_company_agent_update BEFORE UPDATE ON xx_company_agent

FOR EACH ROW

BEGIN

IF OLD.bank_card is not null THEN

SET NEW.bank_card = OLD.bank_card,NEW.money= OLD.money,NEW.real_money=OLD.real_money,NEW.bank_name=OLD.bank_name;

END IF;

END;//

delimiter ;

(2)mysql怎么删除触发器扩展阅读

mysql触发器的使用

用户记录用户的预期事件(schema是特殊用户的数据库对象集合。这些对象包括:表,索引,视图,存储程序等。在Oracle里, schema要求创建一个用户。但是也可以创建一个没有schema的用户(根本没有对象)。

所以在Oracle-中,用户就是一个帐户而schema就是对象。可能在其他的数据库平台上可以创建一个没有用户的schema。LOGOFF不能是AFTER LOGOFF,将会重新操作,这里应该是BEFORE,否则就会报错:替换可以插入不能有AFTER。创建或替换触发器MYLOGOFFTRIGGER。

③ mysql的已创建的触发器能修改吗若能,如何修改

触发器已经没有单独操作修改的,如果想修改,一般是删除原来的触发器后创建同名的触发器。mysql使用的时候,一般建议不使用触发器,即使使用触发器,要确保触发器的执行效率非常高才行。

④ 如何修改和删除Mysql中已经存在的触发器

修改:alter trigger trigger_name on table_name
删除: drop trigger trigger_name

⑤ MySQL写触发器,级联删除

我就不造你的 学生表和成绩表了.

用 test_main 表 和 test_sub 代替说明

--创建测试主表.ID是主键.
CREATETABLEtest_main(
idINTNOTNULL,
valueVARCHAR(10),
PRIMARYKEY(id)
);


--创建测试子表.
CREATETABLEtest_sub(
idINTNOTNULL,
main_idINT,
valueVARCHAR(10),
PRIMARYKEY(id)
);


--插入测试主表数据.
INSERTINTOtest_main(id,value)VALUES(1,'ONE');
INSERTINTOtest_main(id,value)VALUES(2,'TWO');

--插入测试子表数据.
INSERTINTOtest_sub(id,main_id,value)VALUES(1,1,'ONEONE');
INSERTINTOtest_sub(id,main_id,value)VALUES(2,2,'TWOTWO');



通过 DELETE CASCADE外键约束的处理机制来处理

mysql>ALTERTABLEtest_sub
->ADDCONSTRAINTmain_id_cons
->FOREIGNKEY(main_id)
->REFERENCEStest_main(id)
->ONDELETECASCADE//
QueryOK,2rowsaffected(0.16sec)
Records:2Duplicates:0Warnings:0

mysql>DELETEFROM
->test_main
->WHERE
->id=1;
->//
QueryOK,1rowaffected(0.02sec)

mysql>SELECT
->*
->FROM
->test_sub;
->//
+----+---------+--------+
|id|main_id|value|
+----+---------+--------+
|2|2|TWOTWO|
+----+---------+--------+
1rowinset(0.00sec)



如果你非要使用触发器来处理, 那么下面是一个例子:


--创建测试主表.ID是主键.
CREATETABLEt_test_main(
idINTNOTNULL,
valueVARCHAR(10),
PRIMARYKEY(id)
);


--创建测试子表.
CREATETABLEt_test_sub(
idINTNOTNULL,
main_idINT,
valueVARCHAR(10),
PRIMARYKEY(id)
);


--插入测试主表数据.
INSERTINTOt_test_main(id,value)VALUES(1,'ONE');
INSERTINTOt_test_main(id,value)VALUES(2,'TWO');

--插入测试子表数据.
INSERTINTOt_test_sub(id,main_id,value)VALUES(1,1,'ONEONE');
INSERTINTOt_test_sub(id,main_id,value)VALUES(2,2,'TWOTWO');
DELIMITER//

CREATETRIGGERtr_t_test_main_Del
BEFOREDELETEONt_test_main
FOREACHROW
BEGIN
DELETEFROMt_test_subWHEREmain_id=OLD.id;
END;
//

DELIMITER;mysql>deletefromt_test_mainwhereid=1;
QueryOK,1rowaffected(0.01sec)

mysql>select*fromt_test_sub;
+----+---------+--------+
|id|main_id|value|
+----+---------+--------+
|2|2|TWOTWO|
+----+---------+--------+
1rowinset(0.00sec)