Mysql實現自增長編號,日期 序列,序列定時歸零

2021-07-04 05:36:42 字數 1375 閱讀 6465

1、新建表sequence,存放序列規則,方便以後設定多個不同規則編號,包括編號名、編號值、遞增值

設計表:

表示例:

其中,name為編號名、value為編號值、next為遞增值

2、新建乙個事件,定時清空表sequence中的value值

定義:update sequence set value=0 where name='trans_no'

計畫,設定每天19點01分清零:

3、新建乙個函式next_trans_num(),每次遞增獲取sequence中value值

定義,其中

last_insert_id()函式為mysql自帶函式,獲取該表中最後更新的值,seq_name為函式引數,確定呼叫哪個生成規則:

3、再新建乙個函式get_trans_num(),獲取日期+指定長度序列的編號

定義,declare getval varchar(24),申明變數getval,set getval =(),將結果賦值給getval:

4、在sql查詢中執行函式

get_trans_num(),即可得到逾期的編號:

5、向表中插入該編號:

mysql 自增長序列

我們在什麼情況下可能使用序列呢 1.業務複雜,需要定製和控制主鍵時 自增主鍵只能按數字遞增的,但是序列可以隨心所欲的變化,比如我們按照年 月 日生成主鍵 2.希望手工維護自增長,方便資料遷移 3.當事務跨多表,期望事務可靠性時 4.需要業務上有意義的主鍵時,比如流水號 5.主鍵很明確地需要和其他表關...

mysql實現自增序列

create table sequence name varchar 50 collate utf8 bin not null comment 序列的名字 current value int 11 not null comment 序列的當前值 increment int 11 not null d...

oracle實現自動插入自增長序列

key words oracle自增長 sequence sqlserver 和mysql都有自增長的功能,oracle必須建乙個對應的sequence,有時候感覺不是很方便 這次要實現在sqlserver中插入一條記錄的時候自動在oracle中增加一條對應的記錄,sequence就有問題。最後用觸...