有这样一个需求,表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博客 ” ,链接:https://blog.itpub.net/26252014/viewspace-756720/
,如需转载,请注明出处,否则将追究法律责任。