mysql 觸發器流水號 建立生成流水號的觸發器

2021-10-18 18:23:49 字數 1064 閱讀 6399

create table test(id varchar(18),  --流水號,日期(8位)+時間(4位)+流水號(4位)

name varchar(10)  --其他字段

go--建立生成流水號的觸發器

create trigger t_insert

on test

instead of insert

asdeclare @id varchar(18),@id1 int,@head varchar(12)

select * into #tb from inserted

set @head=convert(varchar,getdate(),112)+replace(convert(varchar(5),getdate(),108),':','')

select @id=max(id) from test where id like @head+'%'

if @id is null

set @id1=0

else

set @id1=cast(substring(@id,13,4) as int)

update #tb set @id1=@id1+1

,id=@head+right('0000'+cast(@id1 as varchar),4)

insert into test select * from #tb

go--插入資料,進行測試

insert into test(name)

select 'aa'

union all select 'bb'

union all select 'cc'

--修改系統時間,再插入資料測試一次

insert into test(name)

select 'aa'

union all select 'bb'

union all select 'cc'

--顯示測試結果

select * from test

--刪除測試環境

drop table test

author : miss wang  reshipment

mysql 觸發器生成字母 日期 流水號的編號

最近自己做了乙個專案 裡面有個字段是 編號自動生成 規則 jj 日期 3位流水號 實現方法 delimiter create definer trigger tg 表名 before insert on 表名 for each row begin declare n int select ifnul...

建立流水號

delimiter useppd sit drop procedure if existscreateorderno create definer root procedurecreateorderno outnewordernochar 15 begin declare currentdate c...

SQL生成流水號

經過了幾次的測試終於成功了 declare year int,month int,day int,temp no varchar 12 needno varchar 4 no varchar 20 number varchar 50 randno varchar 50 nu varchar 10 s...