2011-03-19 69 views
11

我正在開發android應用程序。我必須在我的活動中開發一個xml按鈕,並構建我的sqlite數據庫和表。我怎麼才能讓用戶按下一個按鈕來刪除表格?謝謝。在java中,我怎樣才能刪除一個sqlite表?

+2

使用'DROP TABLE「表格名」':

正如其他人所指出的,如果你想從數據庫中完全刪除這應該工作。例如:http://www.kodejava.org/examples/117.html – Margus 2011-03-19 19:06:11

+0

可能重複的[SQLite:有效的方式來刪除很多行](http://stackoverflow.com/questions/19530419/sqlite-efficient-way -to-落大量-的-行) – AndroidMechanic 2016-01-14 07:08:17

回答

33

很難回答沒有更多的情況下,但最終的sqlite的查詢是:

db.execSQL("DROP TABLE IF EXISTS table_name"); 

其中DB是一個SQLiteDatabase對象的引用。

+1

非常感謝,但是當我把聲明中下段,它仍然不能正常工作:公共無效的OnOpen(){ \t 按鈕next3 =(按鈕) findViewById(R.id.Button03); next3.setOnClickListener(新View.OnClickListener(){ \t SQLiteDatabase分貝; \t \t \t \t \t @Override \t \t \t公共無效的onClick(查看視圖){\t \t \t \t \t db.execSQL( 「DROP TABLE IF EXISTS titles」); \t \t \t} \t \t \t}); \t \t } – user667571 2011-03-19 21:14:32

+1

你仍然需要有一個有效的db引用,你需要先打開它,這裏有一個簡單的教程http://www.reigndesign.com/blog/using-your-own-sqlite -database功能於Android的應用程序/。儘管如果你想最終做更多的事情,你會想看看內容提供商。 – Cthos 2011-03-20 17:14:10

0
SQLiteDatabase sdb; 
sdb=openOrCreateDatabase("dbname.db", Context.MODE_WORLD_WRITEABLE, null); 
sdb.execSQL("DROP TABLE IF EXISTS tablename"); 
12

你的問題有一些含糊之處。請注意,刪除一個表和DROPPING一個表之間的差異。刪除表只刪除其行中的所有數據:

database.delete(TABLE_NAME, null, null); 

在此之後,你仍然可以參考表,因爲它仍然存在,但創建一個新的具有相同的名稱可能會出現問題,而無需使用CREATE TABLE如果在sql中不存在表達式。

使用DROP TABLE完全刪除該表,並且除非重新創建,否則無法再次引用它。

db.execSQL("DROP TABLE IF EXISTS table_Name");