Postgres sql中怎样创建一个序列号或是自动递增的字段?

本文介绍了PostgreSQL中SERIAL数据类型的使用方法。通过定义字段为SERIAL类型,PostgreSQL会自动创建一个序列生成器,用于自动填充该字段。此外,文章还提供了具体的SQL语句示例,展示了如何手动创建序列并将其作为字段的默认值。

<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type=text/javascript> </script>

PostgreSQL 支持 SERIAL 数据类型。(字段定义为SERIAL后)将自动创建一个序列生成器,例如:

   CREATE TABLE person ( 
      id   SERIAL, 
      name TEXT 
   );

会自动转换为以下SQL语句:

   CREATE SEQUENCE person_id_seq;
   CREATE TABLE person ( 
      id   INT4 NOT NULL DEFAULT nextval('person_id_seq'),
      name TEXT
   );
也可以使用pgadmin创建字段时直接选择serial属性,生成表的同时会自动生成对应的序列。
Postgres创建id自增表有两种常见方法。 ### 方法一:利用子查询使ID自增 若数据表的id不是自增类型,可通过如下方式让ID自增。以`t_users_maintain`表为例,插入数据时使用子查询获取当前最大ID并加1: ```sql INSERT INTO t_users_maintain (ID, username, PASSWORD, rightlevel, ENABLE, created_at, remarks) VALUES ((SELECT MAX(id) FROM t_users_maintain) + 1, 'dsdas', '111111', 1, 1, '2020-11-06 18:07:11', '111'); ``` 不过这种方法仅在插入数据时实现ID自增,建表时还需常规建表语句,示例如下: ```sql CREATE TABLE t_users_maintain ( ID INTEGER, username VARCHAR(50), PASSWORD VARCHAR(50), rightlevel INTEGER, ENABLE INTEGER, created_at TIMESTAMP, remarks VARCHAR(255) ); ``` ### 方法二:使用自增序列 可以创建序列并将其运用到表的ID字段。以下是创建序列及建表的示例: ```sql -- 创建序列 CREATE SEQUENCE "public"."process_time_seq" INCREMENT 1 MINVALUE 1 MAXVALUE 999999999 START 1 CACHE 1; SELECT setval('"public"."process_time_seq"', 1, false); ALTER SEQUENCE "public"."process_time_seq" OWNER TO "postgres"; -- 创建表并使用序列 CREATE TABLE your_table_name ( ID INTEGER DEFAULT nextval('"public"."process_time_seq"') PRIMARY KEY, -- 其他字段 column1 VARCHAR(50), column2 INTEGER ); ``` 在这个示例中,`process_time_seq`是序列名,`your_table_name`是要创建的表名,`ID`字段自动序列中获取下一个值,从而实现自增。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值