PostgreSQL数据库 tp添加数据后怎么获取添加的id

PostgreSQL数据库 tp添加数据后怎么获取添加的id,第1张

首先数据表中要有一个子增长的字段。字段类型设置成:

然后,在该字段的属性里边会有一个序列:

继续,通常我们都这样来插入数据:

query("insert into ");

紧接着执行这样的sql,就会得到刚才插入的id值

result = query("select currval('address_address_id_seq')"); // 加粗部分就是上边红框内的序列

这次查询返回的结果一般是这样的:

我们需要的部分也主要是红框内的数据,这样我们想要的结果就出来了。

如果不考虑多连接影响而只是获取下一条自增id可以这样做: select max(id) 获取最大id 然后加1。如果你想根据此id插入数据就会有问题,因如果获取到最大id后如果另一个连接新增了一条数据就会出问题,标准做法是先插入数据然后获取插入的id mysql数据库可用:select last_insert_id()获取插入的id,就算另一个连接新增了一条数据select last_insert_id()也不会是插入的id值,而只是当前连接的插入的id值。

直接获取是有难度的,但是可以间接获取,比如先建一张表用来存储这一批数据的批次ID

DECLARE @BATCHID INT

CREATE TABLE TBL_BATCH

(

    ID int identity(1,1),

    [DESC] varchar(255)

)

--要进行批量插入时,先插入一条数据到TBL_BATCH表中

INSERT INTO TBL_BATCH VALUES '这批数据的作用:XXX'

--获取批次ID

SET @BATCHID = @@IDENTITY

--批量插入数据时将@BATCHID一同插入。注:需要先添加一列BATCHID列。

INSERT INTO XXX

SELECT @BATCHID,XXX,XXX,XXX UNION

SELECT @BATCHID,XXX,XXX,XXX

这样根据@BATCHID就可以查到这批数据的所有自增ID了

首先数据表中要有一个子增长的字段。字段类型设置成:

然后,在该字段的属性里边会有一个序列:

继续,通常我们都这样来插入数据:

query("insert into ");

紧接着执行这样的sql,就会得到刚才插入的id值

result = query("select currval('address_address_id_seq')"); // 加粗部分就是上边红框内的序列

这次查询返回的结果一般是这样的:

我们需要的部分也主要是红框内的数据,这样我们想要的结果就出来了。

第一种方法:

insert into table1 values(colvalue1,colvalue2)

select ident_current('table1')

第二种方法:

insert into table1 values(colvalue1,colvalue2)

select @@identity。

1、SQL Server 是Microsoft 公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2012 的大型多处理器的服务器等多种平台使用。

2、Microsoft SQL Server 是一个全面的数据库平台,使用集成的商业智能 (BI)工具提供了企业级的数据管理。Microsoft SQL Server 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。

以上就是关于PostgreSQL数据库 tp添加数据后怎么获取添加的id全部的内容,包括:PostgreSQL数据库 tp添加数据后怎么获取添加的id、MySQL中如何获取下一条插入的自增ID、SQL里如何得到批量插入数据后生成的新的ID等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9510175.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存