簡體   English   中英

Postgres中的SERIAL數據類型

[英]SERIAL datatype in Postgres

SERIAL數據類型的使用是自動遞增值,因此在插入值期間無需指定值。 如果我們創建一個表並向該表插入值,默認情況下,對於SERIAL列數據類型,值從1開始。 但是,有沒有辦法從100開始值並以10為增量值作為默認值?

Serial只是在一個int列之上的語法糖,它從序列中獲取它的值。 雖然您無法直接控制serial列的定義,但您可以使用顯式序列定義:

CREATE SEQUENCE tablename_colname_seq INCREMENT BY 10 START WITH 100; -- Here!
CREATE TABLE tablename (
    colname integer NOT NULL DEFAULT nextval('tablename_colname_seq')
);
ALTER SEQUENCE tablename_colname_seq OWNED BY tablename.colname;

您可以alter現有的順序( 無論是連續的還是什么 ),如下所示

ALTER SEQUENCE mytbl_id_seq INCREMENT 10 RESTART with 100

創建表格時

create table mytbl (id serial,val int)

一個序列將自動創建ie

 CREATE SEQUENCE mytbl_id_seq
  INCREMENT 1
  START 1

所以你可以改變你想要的值,即

  ALTER SEQUENCE mytbl_id_seq 
    INCREMENT 10 
    RESTART with 100

sqlfiddle-demo

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM