SERIAL
数据类型的使用是自动递增值,因此在插入值期间无需指定值。如果我们创建一个
对于该表的表和插入值,默认值从SERIAL
列数据类型的1开始。但是,有没有办法从100开始值并以10为增量值作为默认值?
答案 0 :(得分:4)
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;
答案 1 :(得分:3)
您可以alter
现有的序列(无论是序列号还是),如下所示
ALTER SEQUENCE mytbl_id_seq INCREMENT 10 RESTART with 100
创建表格时
create table mytbl (id serial,val int)
序列会自动生成,即
CREATE SEQUENCE mytbl_id_seq
INCREMENT 1
START 1
所以你可以用你想要的值改变它,即
ALTER SEQUENCE mytbl_id_seq
INCREMENT 10
RESTART with 100