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

问题描述 投票:0回答:1

我正在寻找可以有效解决的问题:ResultSet rs = con.prepareStatement("INSERT INTO Table (num1,num2,num3) VALUES (1,2,3)").execute();

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

java mysql jdbc
1个回答
0
投票

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

MySQL不支持Microsoft SQL Server中的OUTPUT clause

在MySQL中有效的解决方法(尽管仅适用于单行INSERT)是在VALUES子句中嵌入用户变量分配的情况下执行INSERT。

OUTPUT

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.