触发器—一个表插入数据时其他字段同步自增长字段

有这样一个需求,表t1(id int,code int,name varchar(11)),其中id列是自增长字段,在插入数据的同时,自动将code列同步id列

mysql触发器:

DELIMITER $$

USE `AAA`$$

DROP TRIGGER /*!50032 IF EXISTS */ `test`$$

CREATE
    /*!50017 DEFINER = 'root'@'localhost' */
    TRIGGER `test` BEFORE INSERT ON `t1` 
    FOR EACH ROW BEGIN    
SET new.code=(SELECT IF(ISNULL(id),1,id+1) FROM (SELECT MAX(id) AS id FROM t1)tmp);
    END;
$$

DELIMITER ;

oracle触发器:

create or replace trigger test
  before insert on t1  
  for each row
declare
  -- local variables here
begin
  :new.code := :new.id;
end test;


这样能实现需求,但是效率会低。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26252014/viewspace-756720/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26252014/viewspace-756720/

你可能感兴趣的:(触发器—一个表插入数据时其他字段同步自增长字段)