postgres serial創建自增列


  Sequence是數據庫中一類特殊的對象,其用於生成唯一數字標識符。一個典型的應用場景就是手動生成一系列主鍵。Sequence和MySQL中的AUTO_INCREMENT的概念很像。

 

       創建序列Sequence有2種方式:

       第一種,指定列的類型為serial 

       CREATE TABLE table_name( id serial );

Name Storage Size Range
SMALLSERIAL 2 bytes 1 to 32,767
SERIAL 4 bytes 1 to 2,147,483,647
BIGSERIAL 8 bytes 1 to 922,337,2036,854,775,807

     第二種,先創建序列名稱,然后在新建的表中列屬性指定序列就可以了,該列需int 類型

 create sequence tbl_xulie2_id_seq increment by 1 minvalue 1 no maxvalue start with 1;    


查看序列的名稱
select pg_get_serial_sequence('t1', 'id');
默認的序列名稱為table_name_column_name_seq。 例如CREATE TABLE table_name( id SERIAL );創建的序列名稱為
table_name_id_seq。


查看當前值。多次執行結果相同。需要注意的是這里獲取的是本次session中的值,如果該序列在本次session中從來沒有生成過新的數據,則
currval會報錯。
select currval('tbl_xulie_id_seq');


查看序列下一個的可用值,每次執行后加1
select nextval('tbl_xulie_id_seq');


重置序列的下一個可用值,從其他地方導入數據后可能需要重置序列的初始值
alter sequence tbl_xulie_id_seq restart with 100;


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM