重命名SQL數據庫當提及到數據庫表我通常使用的語法如下:my_database_name.my_table_name
android系統
我試圖做的Android相同的,但我無法理解如何命名的數據庫。
你會像在Sqlite3客戶端中一樣執行這個SQL嗎?即
ATTACH "my_database_file" AS my_database_name;
以下是我在我的onCreate方法嘗試:
db.execSQL("Attach 'hq_db' AS hq_db;");
,但我得到這個錯誤:
04-05 11:13:35.676: ERROR/AndroidRuntime(860): Caused by: android.database.sqlite.SQLiteException: cannot ATTACH database within transaction: Attach 'hq_db' AS hq_db;
如何在Android上執行的以外的SQL語句一個交易,使這項工作?
編輯:它也可能有一些這樣與超constuctor,雖然超類構造函數字符串將文件名(其中工作正常),似乎沒有別的:
private class databaseOpenHelper extends SQLiteOpenHelper {
public q_player_databaseOpenHelper() {
super(MyApp.getContext(), "my_db_file", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("Attach 'my_db_file' AS my_db_name;");
db.execSQL("PRAGMA foreign_keys=ON;");
}
注:我已將該代碼刪除,因此它適合我的問題
正如我記得只有一個數據庫爲您的應用程序創建。因此,您不必通過數據庫名稱訪問表。 – 2011-04-05 11:23:24
弗拉基米爾,你是對的,但我可能需要在將來添加數據庫(或者有相同數據庫的兩個版本,它們將具有不同的數據庫名稱,但具有相同的表名),因此可以使用命名來避免衝突 – tjb 2011-04-05 11:28:34