1
A
回答
2
答案是NO。對於MYSQL來說它會有所不同,對於Oracle來說它會有所不同。
在MySQL中它會像
INSERT INTO tabelname (id, name)
VALUES (1, 'abc')
ON DUPLICATE KEY UPDATE id = id;
在Oracle它會像
DECLARE
x NUMBER:=0;
BEGIN
SELECT nvl((SELECT 1 FROM tabelname WHERE name = 'abc'), 0) INTO x FROM dual;
IF (x = 1) THEN
INSERT INTO tabelname (1,'abc')
END IF;
END;
,或者您可以使用合併這樣的:
merge into tablename a
using (select 1 id, 'abc' name from dual) b
on (a.name = b.name)
when not matched then
insert(id, name)
values(b.id, b.name)
+2
爲什麼不簡單地在oracle中合併? – miraclefoxx
+0
@miraclefoxx: - 是的,這也是一個選項,事實上更好。我的意思是讓OP瞭解MYSQL和Oracle沒有共同的查詢 –
+1
@miraclefoxx: - 更新了合併選項! –
相關問題
- 1. 更新數據庫命令
- 2. MERGE命令插入或更新
- 3. 是否可以從CentOS命令行執行數據庫插入?
- 4. 在數據庫中插入值或更新現有數據
- 5. 根據行是否存在更新或插入數據
- 6. 在插入命令中沒有圖像的數據庫不會更新
- 7. 更新/插入/數據庫
- 8. 數據庫:插入新行或更新現有行?
- 9. iPhone上的插入/更新sqlite鎖定整個數據庫或只是特定的表?
- 10. Python + MySQLDB針對兩個相同數據庫的批量插入/更新命令
- 11. PHP檢查是否MySQL查詢是一個插入或更新
- 12. MongoDB的使用db.help()在一個特定的數據庫命令
- 13. 從另一個數據庫更新/插入一個數據庫中的表格
- 14. 更新命令中的datagridview數據庫
- 15. mysqli和mysql插入數據庫命令
- 16. 插入更新觸發器如何確定是否插入或更新
- 17. 插入到表或從一個命令
- 18. 更新數據庫的Ajax計數警報或插入新行
- 19. 是否有批量代碼更改爲另一個特定窗口的命令?
- 20. 插入或更新是否存在行
- 21. SQLite是否能夠更新或插入
- 22. 插入或更新是否存在MYSQL
- 23. 是否有一個JS庫根據特異性命令CSS選擇器文本?
- 24. 插入一個Access數據庫新行
- 25. SQLite UPDATE命令不更新數據庫
- 26. ASP.Net LifeCycle和數據庫更新命令
- 27. 根據行數據插入或更新
- 28. 插入或更新映射模型數據到數據庫
- 29. SQL更新命令執行插入,而不是更新
- 30. 插入或更新Aerospike中的數據
如果你爲什麼要使用Oracle由於mysql的兼容性,不能使用它的好處嗎? – miraclefoxx
最常用的命令是'merge'和'upsert'。 –
爲什麼在生產系統是Oracle時在MySQL上進行測試?!? – jarlh