在实际开发中会有这样的需求,想要自己设置表中自增字段的初始值。
比如:有一个your_table表中有一个自增字段id,我们知道,插入数据后,默认是从1开始自增的。
但是假如现在有一个需求,是要求id从100开始插入,那么该怎么实现呢?其实就是一句sql命令的事儿:
select setval('your_table_id_seq', 100, false);
执行成功后,进行测试,插入一条数据后,会发现主键id的值会从100开始递增。
PostgreSQL 使用序列来标识字段的自增长,数据类型有 smallserial、serial 和 bigserial 。这些属性类似于 MySQL 数据库支持的 AUTO_INCREMENT 属性。
使用 MySQL 设置自动增长的语句如下:
CREATE TABLE IF NOT EXISTS `runoob_tbl`(
`runoob_id` INT UNSIGNED AUTO_INCREMENT,
`runoob_title` VARCHAR(100) NOT NULL,
`runoob_author` VARCHAR(40) NOT NULL,
`submission_date` DATE,
PRIMARY KEY ( `runoob_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
MySQL 是用 AUTO_INCREMENT 这个属性来标识字段的自增。
PostgreSQL 使用序列来标识字段的自增长:
CREATE TABLE runoob
(
id serial NOT NULL,
alttext text,
imgurl text
)
SMALLSERIAL、SERIAL 和 BIGSERIAL 范围:
伪类型 存储大小 范围
SMALLSERIAL 2字节 1 到 32,767
SERIAL 4字节 1 到 2,147,483,647