postgresql具有数据类型smallserial
,serial
和bigserial
; 这些不是真正的类型,而只是在创建唯一标识符列的标志以方便使用。 这些类似于一些其他数据库支持的auto_increment
属性。
如果您希望某列具有唯一的约束或是主键,则必须使用其他数据类型进行指定。
类型名称serial
用于创建整数列。 类型名称bigserial
创建一个bigint
类型的列。 如果您期望在表的使用期限内使用超过2^31
个标识符,则应使用bigserial
。 类型名称smallserial
创建一个smallint
列。
语法:serial
数据类型的基本用法如下:
create table tablename (
colname serial
);
示例:
考虑要创建的company
表如下:
h3_db=# 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 );
这将在表中插入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