猿问

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

我正在寻找能有效实现这一点的东西:ResultSet rs = con.prepareStatement("INSERT INTO Table (num1,num2,num3) VALUES (1,2,3)").execute();

本质上是将您创建的行上的数据设置为变量。显然 ResultSet 仅适用于 SELECT,但我想知道是否有一种方法可以管理创建的行,而不是执行单独的查询来定位它们。如果有办法做到这一点,我一直找不到。


慕雪6442864
浏览 118回答 1
1回答

森栏

在 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 完成后您仍然必须选择用户变量。这也仅适用于单行插入。
随时随地看视频慕课网APP

相关分类

Java
我要回答