當前位置:首頁 » 網路管理 » 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)