我對如何處理更新sqlite中存在的行的情況有點困惑,或者如果它不存在,就插入它。對於這個問題的每一個答案,我似乎都看到了不同的解決方案。什麼是最有效或最簡單的方法? 編輯:我的意思是sqlite,對不起插入或更新混淆
Q
插入或更新混淆
3
A
回答
0
如果EXISTS在這裏可能會有所幫助,如果條件成立爲true,或者如果爲false,則更新。
3
SQLite的:
CREATE TABLE foo (bar INTEGER UNIQUE, baz INTEGER)
INSERT INTO foo (bar,baz) VALUES (1, 2)
這應該引起IntegrityError:列巴是不是唯一的:
INSERT INTO foo (bar,baz) VALUES (1,3)
但使用SQLite你做INSERT OR REPLACE可以upsert:
INSERT OR REPLACE INTO foo (bar,baz) VALUES (1,3)
代替inser婷一個新行,因爲與酒吧等於1的行已經存在,巴茲的值更新爲3
對於MySQL:
在表上創建唯一索引。 然後使用
INSERT INTO table (...) values (...) ON DUPLICATE KEY UPDATE field = ...
例如:
CREATE UNIQUE INDEX mytable_index ON mytable (field1,field2)
INSERT INTO mytable (field1,field2,field3) values (val1,val2,val3)
ON DUPLICATE KEY UPDATE field3 = val3
這要求(FIELD1,FIELD2)在mytable的對是唯一的。 然後當你插入時,你會得到一個新的行,或者,如果(val1,val2)已經存在於mytable
中,則field3的值將被更新。
相關問題
- 1. SQLServer2008:混淆或混淆
- 2. 混淆的插入語句
- 3. 更新或插入
- 4. Heroku插件混淆
- 5. 與新的innodb memcached插件MYSQL混淆?
- 6. 插入索引值混淆SubSubView
- 7. R插入符號/混淆矩陣
- 8. Hive加入或子查詢混淆
- 9. XSD混淆:導入和/或包含
- 10. libGDX新手混淆
- 11. SproutCore新手混淆
- 12. 查詢更新或插入
- 13. 插入或更新sqlite3
- 14. 更新或插入sqlite3
- 15. 插入或更新mysql表
- 16. PHP插入或更新表
- 17. 替換或更新/插入?
- 18. 更新或插入值
- 19. Android SQLite插入或更新
- 20. 更新或插入MySQL Python
- 21. Android sql更新或插入
- 22. iPhone:Sqlite更新或插入行
- 23. 插入或更新地圖
- 24. PyDAQmx導入混淆
- 25. GPA輸入混淆
- 26. 加入SQL混淆?
- 27. Sqlite加入混淆
- 28. SVN導入混淆
- 29. 網頁混淆並修復時更新
- 30. 龜更新分支時合併混淆
老鼠,我的意思是SQLite – Vortol 2010-10-30 20:24:22
我喜歡單詞「UPSERT」,他們應該把它作爲一個標準的SQL命令。 UPSERT INTO foo ... – CashCow 2011-02-09 15:23:06