2011-07-30 20 views
0

是否有可能例如使用:Android SQL在一個語句中插入,添加,刪除等多個表?

String sql = "DELETE field FROM table1, table2 WHERE field='x', field='y'"; 

從多個表中刪除多個字段?我問,因爲我正在使用創建一個清理方法,將刪除所有我的數據庫表中的對象的所有引用,當我刪除該對象時,似乎更容易將所有內容添加到一個sql語句中,而不是單獨構建sql爲每個表,然後單獨執行每個表。如果一個聲明不可能,還有其他解決方案嗎?比如建立一個sql數組,然後用一個命令執行所有數據?

+0

不知道哪個DBMS是在Android,但'刪除字段FROM'是無效(標準)SQL語句。 'DELETE'在列級別上不起作用,它在行級別上工作。 –

+0

@a_horse_with_no_name:Android和iOS的標準是AFAIK,SQLite。 –

回答

0

你不能那樣做。您需要執行多個刪除語句,每個表一個。

+0

我有點想了很多,但只是想我會檢查。謝謝。 – ryandlf

0

許多數據庫允許多個語句在由;分隔的一個字符串中,然後在一個命令中執行。

例如

String sql = 
     "DELETE FROM table1 WHERE field='x' and field='y'; 
      DELETE FROM table2 WHERE field='x' and field='y';"; 

Command.Commandtext = sql; 
Command.Execute(); 

但是我沒有關於Android的具體知識,所以如果我錯了,讓我知道。

0

你想刪除字段或整行嗎?如果是行,那麼你可以在所有表​​中進行刪除,如果他們有外鍵的話。

看看這個帖子MySQL delete row from multiple tables

這應該給你線索,祝你好運......