MySQL 觸發器 索引

2021-09-01 20:34:26 字數 2243 閱讀 7179

博文目錄

觸發器索引

觸發器是mysql響應insert,update,delete語句時自動執行的一條sql語句,只有表支援觸發器,檢視不支援。

觸發器需要的資訊

insert觸發器

create trigger tr_insert_tablea 

after insert on t_tablea

for each row

insert into t_tableb(val)

values

(new.val);

在insert觸發器內,可引用乙個名為new的虛擬表,訪問被插入的行

在before insert觸發器中,new中的值也可以被更新(new可以取到插入的值)

對於自動增長的列,new在insert執行之前的值為0,在執行之後是新的自動生成的值

獲取剛剛插入的自動生成的主鍵值

create trigger t_insert_pk_tablea 

after insert on t_tablea

for each row

select new.id into @id;

insert into t_tablea(val) values("abc");

select @id;

delete觸發器

delimiter //

create trigger t_delete_tablea

after delete on t_tablea

for each row

begin

insert into t_tableb(val) values(old.val);

end //

delimiter ;

delete from t_tablea where id=2;

在delete觸發器**中,可以引用了乙個old的虛擬表,訪問被刪除的行

old表中值全是唯讀的,不能更新

update觸發器

將a表中修改後的名字都改為大寫

delimiter //

create trigger t_update_tablea

before update on t_tablea

for each row

begin

set new.val=upper(new.val);

end //

delimiter ;

update t_tablea set val='xyz' where id=1;

select * from t_tablea;

在update觸發器**中,可以引用乙個名為old的虛擬表訪問以前的值,引用new表訪問新的值

在before update觸發器中,new中值允許被更新

old表中的值是唯讀的,不能更改

刪除觸發器

drop trigger tr_insert_tablea;

索引

索引是優化資料庫查詢速度的重要途徑

索引型別

普通索引:最基本的索引,沒有唯一性之類的限制

create index valindex on t_tablea(val(20));

create index products_index on products(prod_name(25),prod_price);

唯一索引:所有的索引列只能出現一次,保持唯一性

create unique index valindex2 on t_tableb(val(20));

主鍵索引:主鍵索引是一種特殊的唯一索引,在主鍵建立時自動建立

全文索引:全文所以可以在varchar或text型別上建立

索引的缺點

觸發器 mysql觸發器

觸發器是一種特殊的儲存過程,它在插入 刪除或修改特定表中的資料時觸發執行,它比資料庫本身標準的功能有更精細和更複雜的資料控制能力。和儲存過程一樣,很少使用。1 觸發器的作用 2 建立觸發器 建立測試環境 mysql create database test db query ok,1 row aff...

my sql 觸發器 mysql建立觸發器

首先,我們來了解一下什麼是觸發器,觸發器,就是在對一張表資料進行增 insert 刪 delete 改 update 的時候,為了保持資料的一致性,對別的表也要進行相應的資料修改。我們都知道mysql最後事務提交後,資料是會儲存到磁碟上的,那麼每次在insert,delete,update時候舊資料...

my sql 觸發器 MySQL檢視觸發器

檢視觸發器是指檢視資料庫中已經存在的觸發器的定義 狀態和語法資訊等。mysql 中檢視觸發器的方法包括 show triggers 語句和查詢 information schema 資料庫下的 triggers 資料表等。本節將詳細介紹這兩種檢視觸發器的方法。show triggers語句檢視觸發器...