1. 語法:命名規則
create trigger 《觸發器名稱》 <--
on 《表名稱》
for each row
《觸發器sql語句》
觸發器必須有名字,最多64個字元,可能後面會附有分隔符.它和mysql中其他物件的命名方式基本相象.
這裡我有個習慣:就是用表的名字+'_'+觸發器型別的縮寫.因此如果是表t26,觸發器是在事件update(參考下面的點(2)和(3))之前 (before)的,那麼它的名字就是t26_bu。
2. 語法:觸發時間
create trigger 《觸發器名稱》
<--
on 《表名稱》
for each row
《觸發的sql語句》
觸發器有執行的時間設定:可以設定為事件發生前或後 before | after 。
3. 語法:事件
create trigger 《觸發器名稱》
<--
on 《表名稱》
for each row
《觸發的sql語句》
同樣也能設定觸發的事件:它們可以在執行insert、update或delete的過程中觸發。
4. 語法:表
create trigger 《觸發器名稱》
on 《表名稱》 <--
for each row
《觸發的sql語句》
觸發器是屬於某乙個表的:當在這個表上執行插入、
更新或刪除操作的時候就導致觸發器的啟用.
我們不能給同一張表的同乙個事件安排兩個觸發器。
5. 語法:( 步長)觸發間隔
create trigger 《觸發器名稱》
on 《表名稱》
for each row <--
《觸發的sql語句》
觸發器的執行間隔:for each row子句通知觸發器
每隔一行執行一次動作,而不是對整個表執行一次。
6. 語法:語句
create trigger 《觸發器名稱》
on 《表名稱》
for each row
《觸發的sql語句》 <--
觸發器包含所要觸發的sql語句:這裡的語句可以是任何合法的語句,
包括復合語句,但是這裡的語句受的限制和函式的一樣。
privileges許可權
你必須擁有相當大的許可權才能建立觸發器(create trigger)。
如果你已經是root使用者,那麼就足夠了。這跟sql的標準有所不同。
因此在下乙個版本的mysql中,
你完全有可能看到有一種叫做create trigger的新許可權。
然後通過這樣的方法賦予:
grant create trigger on 《表名稱》 to 《使用者或使用者列表》;
也可以通過這樣收回許可權:
revoke create trigger on 《表名稱》 from 《使用者或使用者列表》;
完整小例子:
drop database test_hibernate;
create database test_hibernate;
use test_hibernate;
create table news_table(
id int auto_increment primary key,
title varchar(255) not null,
content varchar(255),
full_content varchar(255)
);delimiter |
create trigger t_full_content_gen before insert on news_table
for each row begin
set new.full_content=concat(new.title,new.content);
end;
|delimiter ;
mysql簡單的觸發器語法 mysql觸發器 學習
1.說明 觸發器的定義就是說某個條件成立的時候,你觸發器裡面所定義的語句就會被自動的執行。因此觸發器不需要人為的去呼叫,也不能呼叫。然後,觸發器的觸發條件其實在你定義的時候就已經設定好的了。這裡面需要說明一下,觸發器可以分為語句級觸發器和行級觸發器。簡單的說就是語句級的觸發器可以在某些語句執行前或執...
觸發器語法
建立觸發器的語法如下所示 create trigger trigger name on table orview name with encryption execute as not for replication as sql statements external name assembly ...
觸發器 mysql觸發器
觸發器是一種特殊的儲存過程,它在插入 刪除或修改特定表中的資料時觸發執行,它比資料庫本身標準的功能有更精細和更複雜的資料控制能力。和儲存過程一樣,很少使用。1 觸發器的作用 2 建立觸發器 建立測試環境 mysql create database test db query ok,1 row aff...