mysql触发器new old介绍


  本文标签:mysql触发器

  下面为您介绍mysql触发器new old的相关知识,供您参考学习,如果您在mysql触发器方面遇到过类似的问题,不妨一看,相信对您会有所帮助  。

  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的例子  。

  1. CREATE TRIGGER tr1  
  2. BEFORE UPDATE ON t22   
  3. FOR EACH ROW   
  4. BEGIN   
  5. SET @old = OLD.s1;   
  6. SET @new = NEW.s1;   
  7. END; 

  现在如果t21表中的s1列的值是55,那么执行了"UPDATE t21 SET s1 = s1 + 1"之后@old的值会变成55,

  而@new的值将会变成56  。

  触发器的执行间隔:FOR EACH ROW子句通知触发器每隔一行执行一次动作,而不是对整个表执行一次  。

  列值递增:

  1. create table a(  
  2. id int primary key auto_increment,##设置为自动递增  
  3. name varchar(10)  
  4. ); 

  设置初始值为1000 :
ALTER   TABLE   tablename   AUTO_INCREMENT=1000;