在实际开发中会有这样的需求,想要自己设置表中自增字段的初始值。
比如:有一个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