这里有一个关于使用alter
关键字更改序列值的问题。是否可以在创建表定义时完成?像这样:
CREATE TABLE tablename (
colname SERIAL stars 1000
);
这里有一个关于使用alter
关键字更改序列值的问题。是否可以在创建表定义时完成?像这样:
CREATE TABLE tablename (
colname SERIAL stars 1000
);
CREATE SEQUENCE tablename_colname_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 1 ---> here you can mention startup nummber as you need
CACHE 1;
CREATE TABLE tablename (
colname integer NOT NULL DEFAULT nextval('tablename_colname_seq')
);
目前在 PostgreSQL 9.x 中,使用特定于 PostgreSQL 的 serial-type 语法 在 CREATE TABLE
命令中无法实现此功能。但是,在 PostgreSQL 10 中将使用 标准化的身份列语法,可以在这里查看我的回答。
以下是它的外观
CREATE TABLE foo (
id int GENERATED { ALWAYS | BY DEFAULT }
AS IDENTITY [ ( sequence_options ) ]
);
(sequence_options)
代表START WITH 1000
,因此类似于这样。
CREATE TABLE foo (
foo_id int GENERATED ALWAYS AS IDENTITY (START WITH 1000)
);