我需要更新一個表格行IF EXISTS,否則INSERT一個新行。 我想:SQLITE - INSERT或UPDATE不改變ROWID值
INSERT OR REPLACE INTO table VALUES ...
,但如果該行的行存在這樣的語句更改行的ROWID,而這正是我想避免的(我需要的ROWID:d)
我也試着找在更新發生的情況下從更新中獲得某種返回值的方法,但我仍然不明白如何...如果能從update語句中獲得返回值,我可以選擇更新繼續插入或不插入。
你有任何建議或解決這個問題?或者我需要製作一個ROWID的副本,並使用它來代替「純」表ROWID?
在此先感謝,最好的問候
PS:我一直在尋找HERE,我想知道,如果sqlite的有OUTPUT特殊字太多,但谷歌並沒有幫助我..
----閱讀評論後編輯:
表模式例如
CREATE TABLE test (
table_id TEXT NOT NULL,
some_field TEXT NOT NULL,
PRIMARY KEY(table_id)
)
INSERT or REPLACE INTO test (table_id, some_field) VALUES ("foo","bar")
你可以發佈一個表模式和一個完整的「插入或更換」的聲明? – 2012-07-30 10:13:17
'ExecuteNonQuery'返回受影響的行數,因此如果您的更新返回0,請執行插入操作。 – Thomas 2012-07-30 10:16:00