2017-10-14 47 views
0

MySQL有這樣的事情:SQLITE3光標方法用於插入新的和更新的重複鍵

INSERT INTO visits (ip, hits) 
VALUES ('127.0.0.1', 1) 
ON DUPLICATE KEY UPDATE hits = hits + 1; 

在SQLITE3來實現這一點的方法是給它我下面重現:

INSERT OR IGNORE INTO visits VALUES ($ip, 0); 
UPDATE visits SET hits = hits + 1 WHERE ip LIKE $ip; 

現在我需要使用遊標方法在Python中實現它。但我不知道如何放入與上述查詢相同的字符串。請注意'ip'和'hits'是變量。

回答

0

就叫execute()用SQL語句:

ip = '127.0.0.1' 
cursor.execute('INSERT OR IGNORE INTO visits VALUES ($ip, 0);', [ip]) 
cursor.execute('UPDATE visits SET hits = hits + 1 WHERE ip = $ip;', [ip]) 
+0

佔位符必須是''在這種情況下? –

+0

@JonClements否,SQLite [支持$就好了](http://www.sqlite.org/lang_expr.html#varparam)。 –

+0

嗯......認爲DB API包裝器有一個顫抖的... –