2010-10-20 60 views

回答

1

採取描述here的方法,給出表主鍵,並使用INSERT OR IGNORE語法,始終使用相同的鍵值。

1

你可以做類似

IF (SELECT COUNT(*) FROM foo) = 0 
    BEGIN 
     INSERT INTO foo VALUES ('text') 
    END 
ELSE 
    BEGIN 
     UPDATE foo SET baa = 'text' 
    END 

希望這有助於。

+0

你已經將邏輯倒置了 - 你正在更新count is zero ... – 2010-10-20 10:40:41

2

如果你可以添加一個獨特的領域,那麼您可以:

INSERT OR REPLACE INTO foo (id, bar) VALUES (1, ?); 

表創建在這種情況下:

CREATE TABLE foo (id INTEGER NOT NULL, bar TEXT, UNIQUE (id)); 

或阿列克謝發現了這件事,沒有的主鍵:

INSERT OR REPLACE INTO foo (rowid, bar) VALUES (1, ?); 
+0

這是否會使用'rowid'而不是添加另一個字段? – 2010-10-20 11:54:56

+0

我不知道,你可以試試。 – 2010-10-20 11:58:58

+0

看起來像它一樣。 – 2010-10-20 12:04:12

相關問題