为了账号安全,请及时绑定邮箱和手机立即绑定

是否可以收集语句执行期间创建的行?

是否可以收集语句执行期间创建的行?

慕雪6442864 2023-12-10 15:04:08
我正在寻找能有效实现这一点的东西:ResultSet rs = con.prepareStatement("INSERT INTO Table (num1,num2,num3) VALUES (1,2,3)").execute();本质上是将您创建的行上的数据设置为变量。显然 ResultSet 仅适用于 SELECT,但我想知道是否有一种方法可以管理创建的行,而不是执行单独的查询来定位它们。如果有办法做到这一点,我一直找不到。
查看完整描述

1 回答

?
森栏

TA贡献1810条经验 获得超5个赞

在 MySQL 中,不会为 INSERT/UPDATE/DELETE/REPLACE 语句生成结果集。

MySQL 不支持Microsoft SQL Server 中的OUTPUT子句。

在 MySQL 中可行的解决方法(尽管仅适用于单行 INSERT)是使用嵌入到 VALUES 子句中的用户变量赋值来执行 INSERT。

INSERT INTO MyTable (num1, num2, num3) VALUES (@num1:=1, @num2:=2, @num3:=3)

这仍然不会为 INSERT 语句创建结果集,因此您必须在 INSERT 之后执行 SELECT 查询。

SELECT @num1 AS num1, @num2 AS num2, @num3 AS num3

另一种解决方法是在 INSERT TRIGGER 内对用户变量进行赋值。您不必以这种方式在 VALUES 子句中进行赋值。但是在 INSERT 完成后您仍然必须选择用户变量。这也仅适用于单行插入。


查看完整回答
反对 回复 2023-12-10
  • 1 回答
  • 0 关注
  • 126 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信