如何在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自增列的主要内容,如果未能解决你的问题,请参考以下文章

sql的自增列如何重置

如何用sql创建自增列?

如何修改MySql自增列的值

SQL 如何在自增列插入指定数据

sql中自增列 id,删除其中一个 ,如何查找被删除的行??

mysql如何增加一自增列