首页 >数据库 >mysql教程 >如何使用 OUTPUT 子句在 INSERT 后检索标识值?

如何使用 OUTPUT 子句在 INSERT 后检索标识值?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-17 12:36:11575浏览

How Can I Retrieve Identity Values After an INSERT Using the OUTPUT Clause?

使用 OUTPUT 子句访问新生成的身份值

将数据插入包含标识列的表中通常需要检索新生成的 ID。 OUTPUT 子句提供了一种有效的方法来实现此目的,消除了额外查询的需要。

方法 1:输出到表变量

此方法将标识值定向到声明的表变量。

<code class="language-sql">DECLARE @OutputTbl TABLE (ID INT);

INSERT INTO MyTable (Name, Address, PhoneNo)
OUTPUT INSERTED.ID INTO @OutputTbl (ID)
VALUES ('Yatrix', '1234 Address Stuff', '1112223333');</code>

@OutputTbl 变量现在保存生成的 ID。

方法 2:输出到非表变量

某些数据库系统(如 SQL Server)支持直接输出到非表变量。 请注意,这并未得到普遍支持; 例如,PostgreSQL 使用 RETURNING 代替。

SQL Server 示例:

<code class="language-sql">DECLARE @ID INT;

INSERT INTO MyTable (Name, Address, PhoneNo)
OUTPUT INSERTED.ID INTO @ID
VALUES ('Yatrix', '1234 Address Stuff', '1112223333');</code>

ID 存储在 @ID 中。

PostgreSQL 示例:

<code class="language-sql">INSERT INTO MyTable (Name, Address, PhoneNo)
RETURNING Id INTO @ID
VALUES ('Yatrix', '1234 Address Stuff', '1112223333');</code>

这里,@ID接收返回的ID。 RETURNING 子句的功能与其他系统中的 OUTPUT 类似。 根据您的具体数据库系统选择合适的方法。

以上是如何使用 OUTPUT 子句在 INSERT 后检索标识值?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn