我正在尋找能有效實現(xiàn)這一點的東西:ResultSet rs = con.prepareStatement("INSERT INTO Table (num1,num2,num3) VALUES (1,2,3)").execute();本質(zhì)上是將您創(chuàng)建的行上的數(shù)據(jù)設置為變量。顯然 ResultSet 僅適用于 SELECT,但我想知道是否有一種方法可以管理創(chuàng)建的行,而不是執(zhí)行單獨的查詢來定位它們。如果有辦法做到這一點,我一直找不到。
1 回答

森欄
TA貢獻1810條經(jīng)驗 獲得超5個贊
在 MySQL 中,不會為 INSERT/UPDATE/DELETE/REPLACE 語句生成結(jié)果集。
MySQL 不支持Microsoft SQL Server 中的OUTPUT
子句。
在 MySQL 中可行的解決方法(盡管僅適用于單行 INSERT)是使用嵌入到 VALUES 子句中的用戶變量賦值來執(zhí)行 INSERT。
INSERT?INTO?MyTable?(num1,?num2,?num3)?VALUES?(@num1:=1,?@num2:=2,?@num3:=3)
這仍然不會為 INSERT 語句創(chuàng)建結(jié)果集,因此您必須在 INSERT 之后執(zhí)行 SELECT 查詢。
SELECT?@num1?AS?num1,?@num2?AS?num2,?@num3?AS?num3
另一種解決方法是在 INSERT TRIGGER 內(nèi)對用戶變量進行賦值。您不必以這種方式在 VALUES 子句中進行賦值。但是在 INSERT 完成后您仍然必須選擇用戶變量。這也僅適用于單行插入。
添加回答
舉報
0/150
提交
取消