2017-01-14 29 views
0

我的表包含2個INTEGER主鍵列。我想刪除幾條記錄,並指定它們。例如(1,1)和(1,2)。我試過了:SQLite使用指定的組合主鍵刪除幾條記錄

DELETE FROM my_table WHERE(primarykey1,primarykey2) IN ((1,1),(1,2)) 

語法錯誤。

+0

它可能更容易使用兩個不同的DELETE語句。無論哪種方式,SQLite沒有「元組」,所以'(primarykey1,primarykey2)'不是表達式。 –

+0

如果有2000條刪除語句會怎麼樣?兩個 - 只是一個例子。 –

+0

在代碼中,您可以爲要刪除的任何鍵準備一個包含查詢參數的刪除語句,然後將不同的值綁定到循環中的這些參數。 –

回答

0
DELETE FROM my_table WHERE primarykey1 = 1 AND primarykey2 IN (1,2) 
1

由於3.15 SQLite的版本,可以使用下面的語法:

DELETE FROM my_table WHERE (p1, pk2) IN (VALUES(1,1),(1,2)); 
+0

不適用於Qt 5.7.1。 :( –

+0

哈哈:)我已經在你的答案中使用關鍵字Google搜索,我得到了一個:) –

+0

(http://stackoverflow.com/questions/14691483/how-to-delete-several-values-in-sql) –