求教mysql触发器生成流水号

求教mysql触发器生成流水号,第1张

主键要插入12位数字,

肯定得用varchar

类型的字段了。

delimiter

&&

CREATE

TRIGGER

tr_orders_id

BEFORE

INSERT

ON

orders

FOR

EACH

ROW

BEGIN

declare

n

int

select

IFNULL(max(right(orders_id,4)),0)

into

n

from

orderswhere

mid(orders_id,1,8)=DATE_FORMAT(CURDATE(),'%Y%m%d')

set

NEW.orders_id=concat(DATE_FORMAT(CURDATE(),'%Y%m%d'),right(10001+n,4))

END&&

CREATE PROCEDURE `pmp`.`GetSerialNumber` (out serialNo VARCHAR(3))

BEGIN

SELECT @cnt:=count(*) FROM Seek where Year = YEAR(CURRENT_DATE())

if (@cnt >0) then

update Seek SET SeekNo=SeekNo+1 WHERE Year=YEAR(CURRENT_DATE())

Else

INSERT INTO Seek(Year,SeekNo) values (YEAR(CURRENT_DATE()),0)

end if

SELECT SeekNo-1 into serialNo From Seek where Year=YEAR(CURRENT_DATE())

SELECT serialNo

END

你是要改逻辑需求呢?

还是单单帮你修改语句中的语法错误呢?(我上面只仅帮你修改了你的语法错误)

请把问题说清楚点 或hi我详说


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/7252751.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存