mysql觸發器new old詳解
mysql觸發器new old:
"new . column_name"或者"old . column_name".這樣在技術上處理(new | old . column_name)新和舊
的列名屬於建立了過渡變數("transition variables")。
對於insert語句,只有new是合法的;對於delete語句,只有old才合法;而update語句可以在和new以及
old同時使用。下面是乙個update中同時使用new和old的例子。
create trigger tr1
before update on t22
for each row
begin
set @old = old.s1;
set @new = new.s1;
end;
現在如果t21表中的s1列的值是55,那麼執行了"update t21 set s1 = s1 + 1"之後@old的值會變成55,
而@new的值將會變成56。
觸發器的執行間隔:for each row子句通知觸發器每隔一行執行一次動作,而不是對整個表執行一次。
列值遞增:
create table a(
id int primary key auto_increment,##設定為自動遞增
name varchar(10)
);設定初始值為1000 :
alter table tablename auto_increment=1000;
example:
drop trigger if exists `timeline_insert`;
create trigger timeline_insert
before insert on teacher_timeline
for
each row
begin
declare temp_org_id int(11);
select org_id into temp_org_id from teacher_class where id=new.class_id;
set new.org_id=temp_org_id ;
end;
drop trigger if exists `timeline_update`;
create trigger timeline_update
before insert on teacher_timeline
for
each row
begin
declare temp_org_id int(11);
select org_id into temp_org_id from teacher_class where id=new.class_id;
set new.org_id=temp_org_id ;
end;
drop trigger if exists `class_update`;
create trigger class_update
before insert on teacher_class
for
each row
begin
update teacher_timeline set org_id = old.org_id where class_id = old.id;
end;
mysql觸發器 NEW與OLD解析
mysql觸發器之 new與old解析mysql觸發器中,new關鍵字,和 ms sql server 中的 inserted 和 deleted 類似,mysql 中定義了 new 和 old,用來表示觸發器的所在表中,觸發了觸發器的那一行資料。具體地 在 insert 型觸發器中,new 用來表...
mysql 觸發器OLD和NEW關鍵字
使用old和new關鍵字,能夠訪問受觸發程式影響的行中的列 old和new不區分大小寫 在insert觸發程式中,僅能使用new.col name,沒有舊行。在delete觸發程式中,僅能使用old.col name,沒有新行。在update觸發程式中,可以使用old.col name來引用更新前的...
觸發器中OLD和NEW的使用
一 old和new在oracle中不區分大小寫 二 old和new可以用在declare中也可以用在begin裡的sql語句 只會在begin中的sql語句裡用 三 old表示插入之前的值,new表示新插入的值 old用在刪除和修改,new用在新增和修改 但是用delete new值也沒有報錯,不知...