在mysql 8.0 中,触发器里的参数不需要使用declare先定义。直接@parm就可以使用。 因为触发器不支持显示输出的 select ,所以给变量赋值时不要直接select @parm=xx,这样会报错。而是要使用select xx into @parm。
- CREATE DEFINER=`root`@`localhost` TRIGGER `trg_ins` BEFORE INSERT ON `table` FOR EACH ROW BEGIN
- if length(coalesce(new.sn,''))<'3'
- then
- select sn
- into @sn
- from database.table
- where id = new.id;
- set new.sn = @sn;
- end if;
- END