Postgresql 专题
专题目录
您的位置:database > Postgresql专题 > PostgreSQL自动递增
PostgreSQL自动递增
作者:--    发布时间:2019-11-20

postgresql具有数据类型smallserialserialbigserial; 这些不是真正的类型,而只是在创建唯一标识符列的标志以方便使用。 这些类似于一些其他数据库支持的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

网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册