博文目錄
觸發器索引
觸發器是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語句檢視觸發器...