项目需要,将oracle项目迁移到mysql上去。
oracle中一些自增id、自动时间戳等可以使用mysql中的触发器实现。
比如自增ID,在oralce中是这样的:
在mysql中可以使用触发器来实现:
BEGIN
IF new.ORG_CODE is null or new.ORG_CODE = ''
then
SET new.ORG_CODE=REPLACE(UUID(),'-','');
end IF;
END
此处需要加“ new.ORG_CODE is null or new.ORG_CODE = '' ”的判断,否则在你入参有值的情况下,触发器也会自动生成一个uuid,这一点在同步数据时,容易造成混乱。
再例如,对时间戳的新增,可以这样写:
BEGIN
IF new.ORG_CREATE_TIME is null
then
SET new.ORG_CREATE_TIME=now();
end IF;
END
查看所有触发器:
SHOW TRIGGERS;