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...