PostgreSQL AUTO INCREMENT(自动增长)
Posted 瀚高PG实验室
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PostgreSQL AUTO INCREMENT(自动增长)相关的知识,希望对你有一定的参考价值。
PostgreSQL AUTO INCREMENT(自动增长)
AUTO INCREMENT(自动增长) 会在新记录插入表中时生成一个唯一的数字。
PostgreSQL 使用序列来标识字段的自增长,数据类型有 smallserial、serial 和 bigserial 。这些属性类似于 mysql 数据库支持的 AUTO_INCREMENT 属性。
使用 MySQL 设置自动增长的语句如下:
CREATE TABLE IF NOT EXISTS `hgdb_tbl`(
`hgdb_id` INT UNSIGNED AUTO_INCREMENT,
`hgdb_title` VARCHAR(100) NOT NULL,
`hgdb_author` VARCHAR(40) NOT NULL,
`submission_date` DATE,
PRIMARY KEY ( `hgdb_id` ))ENGINE=InnoDB DEFAULT CHARSET=utf8;
MySQL 是用 AUTO_INCREMENT 这个属性来标识字段的自增。
PostgreSQL 使用序列来标识字段的自增长:
CREATE TABLE hgdb(
id serial NOT NULL,
alttext text,
imgurl text)
SMALLSERIAL、SERIAL 和 BIGSERIAL 范围:
伪类型 | 存储大小 | 范围 |
---|---|---|
SMALLSERIAL | 2字节 | 1 到 32,767 |
SERIAL | 4字节 | 1 到 2,147,483,647 |
BIGSERIAL | 8字节 | 1 到 922,337,2036,854,775,807 |
语法
SERIAL 数据类型基础语法如下:
CREATE TABLE tablename (
colname SERIAL);
实例
假定我们要创建一张 COMPANY 表,并创建下面几个字段:
highgo=# CREATE TABLE COMPANY(
ID SERIAL PRIMARY KEY,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL);
现在往表中插入几条记录:
INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ('张三', 32, '济南', 20000.00 );
INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( '李四', 25, '青岛', 15000.00 );
INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( '王五', 23, '北京', 20000.00 );
INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( '赵六', 25, '上海 ', 65000.00 );
INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( '小明', 27, '广州', 85000.00 );
INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( '小红', 22, '深圳', 45000.00 );
INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( '小强', 24, '成都', 10000.00 );
查看 COMPANY 表的记录如下:
highgo=# select * from company ;
id | name | age | address | salary
----+------+-----+------------------------------------------------------+--------
1 | 张三 | 32 | 济南 | 20000
2 | 李四 | 25 | 青岛 | 15000
3 | 王五 | 23 | 北京 | 20000
4 | 赵六 | 25 | 上海 | 65000
5 | 小明 | 27 | 广州 | 85000
6 | 小红 | 22 | 深圳 | 45000
7 | 小强 | 24 | 成都 | 10000
(7 行记录)
以上是关于PostgreSQL AUTO INCREMENT(自动增长)的主要内容,如果未能解决你的问题,请参考以下文章
Mysql设置auto_increment_increment和auto_increment_offset