標題非常清晰... 我希望能夠添加一個項目到數據庫,並且如果已經有一個項目匹配唯一的列,返回該項目的ID ......因爲我發現一個解決方案JDBC - 插入並返回生成的ID,或者如果DUPLICATE KEY返回舊ID
下面的表達式是接近
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), c=3;
我能夠獲取新的ID using語句(插入新行時) .generatedKeys()。 如果重複,會在statement.generatedKeys()中出現「id」?如果不是,我該如何取回它?
UPDATE:使用存儲過程,下面是正是我需要的:
INSERT INTO applications (path, displayName) VALUES (?, ?)
ON DUPLICATE KEY UPDATE
id = LAST_INSERT_ID(id), path = ?, displayName = ?;
SELECT LAST_INSERT_ID() INTO ?;
它適用於不同的項目我的工作,它使用的MySQL連接器在.NET中,但不幸的是存儲過程在這個Java項目中對我來說不是一種選擇。
有沒有其他方法可以在同一網絡旅程中發送2條語句?
我沒有reffering到上面的EXACT示例中,我只是聲明INSERT INTO ... ON DUPLICATE KEY通常可以幫助我完成要查找的內容 –
使用存儲過程對我來說不是一種選擇,JDBC中是否有執行的方法來執行一次網絡旅程中的兩條語句? –