我正在使用H2文件數據庫,並且遇到以下問題。假設我有一個名爲PROPERTIES的表,其中包含兩個VARCHAR(255)列:NAME和VALUE,其中NAME是主鍵。現在,我想用新行更新表,只有當它不存在。如果存在,我不想更改該名稱的VALUE。這很容易說MS SQL Server,但H2 SQL沒有IF,WHERE NOT EXISTS。它有一個名爲MERGE的命令,但是如果存在則更新。有沒有辦法與H2 SQL做到這一點?
我不認爲這個問題是重複的,因爲我沒有看到它特別要求H2。只有在不存在H2插入行的情況下
0
A
回答
0
我不熟悉H2,但是如果「where not exists」不起作用,那麼如何檢查新值是否已經存在,如果不存在,如何插入?
這是一個SQL Server示例,因此您可能需要更改syntasx。
Insert into Properties
(Name, Value)
source.Newname, source.NewValue
from Source
where NewName
not in (
select Name
from Properties
)
;
+0
謝謝,但您的代碼似乎從另一個表中插入。我需要能夠將常量值直接插入到表中。我將如何填充源代碼? –
+0
你是如何傳遞這些值的?我們是否使用變量?使用變量可以刪除「from Source」子句,並將NewName和NewValue列值替換爲變量。 – Adam
相關問題
- 1. 只有在不存在的情況下插入MYSQL
- 2. 只有在記錄不存在的情況下插入記錄
- 3. MySQL只有在行不存在的情況下執行插入操作
- 4. 如何僅在不存在的情況下插入行?
- 5. 在不存在記錄的情況下用SQL插入多行
- 6. 只有在複選框被選中的情況下插入組
- 7. PL/SQL - 只在記錄不存在的情況下插入記錄
- 8. 只有在關係存在的情況下才進行加載
- 9. 僅在記錄不存在的情況下插入值
- 10. 只有在不存在的情況下才打開Tkniter Toplevel
- 11. SQLiteDatabase只有在不存在的情況下才會添加
- 12. htaccess只有在文件不存在的情況下重寫
- 13. 將新行插入到SQL表中的正確方法,但只有在對不存在的情況下
- 14. 在不更新舊行的情況下插入唯一行
- 15. 只有在存在ruby的情況下才能下載文件
- 16. asihttprequest只有在沒有存儲的情況下才能下載
- 17. Hibernate在不插入父項的情況下保存子實體
- 18. codeigniter複合只有在行不存在的情況下才會連接
- 19. ebean只有在數據庫不存在的情況下才運行ddl
- 20. 只有在不重複的情況下才將數據插入兩列
- 21. 在不覆蓋數據的情況下插入行
- 22. 只有在fb_id不存在的情況下才會插入 - 否則什麼也不做 - PHP
- 23. 在某些情況下只保存NSManagedContext
- 24. c#程序只能在插入斷點的情況下工作
- 25. 只有在關係存在的情況下SQL更新
- 26. Javascript:只有在對象存在的情況下才使用JSON.parse
- 27. Rails:link_to只有在路由存在的情況下
- 28. mongodb shell:只有在存在的情況下才更新文件
- 29. 只有在DROP觸發器存在的情況下(ORACLE)
- 30. 只有在物品存在的情況下才定義變量
看來你可以用'那裏不是H2 exists' http://stackoverflow.com/questions/19768051/h2-sql-database-insert-if-the-record-does-not-exist –
其實這對我不起作用。在H2中似乎並沒有使用WHERE NOT EXISTS。我正在使用SQuirrel 3.6來運行查詢(H2驅動程序是h2-1.4.187) –