如何在postgresql中添加id自增列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在postgresql中添加id自增列相关的知识,希望对你有一定的参考价值。
使用 serial 来处理。CREATE TABLE test_create_tab2 (
id SERIAL,
val VARCHAR(10)
);
Test=# CREATE TABLE test_create_tab2 (
Test(# id SERIAL,
Test(# val VARCHAR(10)
Test(# );
注意: CREATE TABLE 将为 serial 字段 "test_create_tab2.id" 创建隐含序列 "test_create_tab2_id_seq"
CREATE TABLE
Test=# \d test_create_tab2;
资料表 "public.test_create_tab2"
栏位 | 型别 | 修饰词
------+-----------------------+-------------------------------------------------
-------
id | integer | 非空 缺省 nextval('test_create_tab2_id_seq'::regclass)
val | character varying(10) |
Test=# INSERT INTO test_create_tab2(val) VALUES ('NO id');
INSERT 0 1
Test=# INSERT INTO test_create_tab2(val) VALUES ('NO id 2');
INSERT 0 1
Test=# select * from test_create_tab2;
id | val
----+---------
1 | NO id
2 | NO id 2
(2 行记录)
Test=# select lastval();
lastval
---------
2
(1 行记录) 参考技术A SERIAL类型的字段和mysql中的自增唯一ID等价。当你在你的数据表中定义了一个SERIAL类型的列后,SERIAL的自增功能会被自动添加到数据库 参考技术B 新建表时,设置 id 为 serial ,并使用sequence,在sequence 中,可以设置id的初始值,最大值,和当前值,以及 每次自增多少
在SQL查询结果中添加自增列的两种方法
解决办法《一》:
如果想查询出这个表的信息,并添加一列连续自增的ID,可用如下查询语句:
SELECT Row_Number() over ( order by getdate() ) as init , * FROM 表名
解决办法《二》:
使用关键字IDENTITY创建临时表
SELECT IDENTITY(int,1,1) as Nid,* INTO #T FROM 表名 SELECT * FROM #T
以上是关于如何在postgresql中添加id自增列的主要内容,如果未能解决你的问题,请参考以下文章