我正在寻找能有效实现这一点的东西: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 完成后您仍然必须选择用户变量。这也仅适用于单行插入。
添加回答
举报
0/150
提交
取消