MySQL序列是一種保留整數值的生成器,它可以用于產生唯一的ID。序列生成器在大量的應用程序中被使用,例如:網站用戶ID、訂單號等。
MySQL 8.0版本及以上版本均支持序列,可以在數據表中定義一個序列,并使用它來生成唯一的ID。序列可由以下屬性來定義:
CREATE SEQUENCE sequence_name [START WITH starting_value] [INCREMENT BY increment_value] [MINVALUE minimum_value] [MAXVALUE maximum_value] [CYCLE | NO CYCLE] [CACHE cache_size];
下面是對上面屬性的解釋:
- sequence_name:序列的名稱
- START WITH starting_value:序列的初始值,默認值為1
- INCREMENT BY increment_value:序列的增長步長,默認為1
- MINVALUE minimum_value:序列的最小值,默認為1
- MAXVALUE maximum_value:序列的最大值,默認為無窮大
- CYCLE:達到最大值時是否循環,默認為不循環
- CACHE cache_size:緩存大小,默認為20,表示序列從內部緩存中獲取下一個值
可以使用以下命令創建一個序列:
CREATE SEQUENCE my_sequence;
使用以下命令獲取序列的下一個值:
SELECT NEXTVAL(my_sequence);
序列還有以下幾個相關函數:
- LASTVAL(sequence_name):返回最后一個使用一個特定序列的 INSERT INTO 語句插入的序列值
- CURRVAL(sequence_name):返回最后一個生成使用一個特定序列的 NEXTVAL 函數的序列值
- SETVAL(sequence_name, value):用 value 指定的值設置 sequence_name 指定的序列的當前值
總體而言,使用MySQL序列可以方便地生成唯一的ID,提高應用程序的性能效率。
上一篇mysql序列發生器