SERIAL
数据类型的用途是自动增加值,因此在插入值时无需指定值。如果我们创建一个表并向该表插入值,则默认情况下SERIAL
列数据类型的值从1开始。但是,是否有任何方法可以从100开始值并以10递增作为默认值?
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)
CREATE SEQUENCE mytbl_id_seq
INCREMENT 1
START 1
所以你可以使用你想要的值来改变它,例如:
ALTER SEQUENCE mytbl_id_seq
INCREMENT 10
RESTART with 100