发布于 2015-07-12 03:02:50 | 244 次阅读 | 评论: 0 | 来源: 网络整理
PostgreSQL拥有的数据类型smallserial,serial 和bigserial,这些都不是真正的类型,但仅仅是一个概念上的便利,为创建唯一标识符列。这些都是相似到支持AUTO_INCREMENT属性其他一些数据库。
如果想有一个串行列的唯一约束或主键,它现在必须被指定,就像其他数据类型。
类型名称序列创建整数列。类型名称BIGSERIAL创建一个bigint列。BIGSERIAL应使用,如果预计超过231标识符使用的整个生命周期表。该的类型名称smallserial创建一个SMALLINT列。
串行数据类型的基本用法如下:
CREATE TABLE tablename (
colname SERIAL
);
考虑要创建的COMPANY表如下:
testdb=# CREATE TABLE COMPANY(
ID SERIAL PRIMARY KEY,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
现在,插入下面的记录表COMPANY:
INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( 'Paul', 32, 'California', 20000.00 );
INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ('Allen', 25, 'Texas', 15000.00 );
INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ('Teddy', 23, 'Norway', 20000.00 );
INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( 'Mark', 25, 'Rich-Mond ', 65000.00 );
INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( 'David', 27, 'Texas', 85000.00 );
INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( 'Kim', 22, 'South-Hall', 45000.00 );
INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( 'James', 24, 'Houston', 10000.00 );
这将插入到表COMPANY 的7元组,COMPANY 将有以下记录:
id | name | age | address | salary
----+-------+-----+------------+--------
1 | Paul | 32 | California | 20000
2 | Allen | 25 | Texas | 15000
3 | Teddy | 23 | Norway | 20000
4 | Mark | 25 | Rich-Mond | 65000
5 | David | 27 | Texas | 85000
6 | Kim | 22 | South-Hall | 45000
7 | James | 24 | Houston | 10000