-4
我想創建一個數據庫。它將來可能會超過9桌。但是表的結構(列數和列名稱)對於所有表都是相同的。我知道有一個選項可以複製表格的結構並重新命名並使用它,但我不知道如何完全做到這一點。請給我相關的答案,以減少我的代碼。如何只複製表結構?
我想創建一個數據庫。它將來可能會超過9桌。但是表的結構(列數和列名稱)對於所有表都是相同的。我知道有一個選項可以複製表格的結構並重新命名並使用它,但我不知道如何完全做到這一點。請給我相關的答案,以減少我的代碼。如何只複製表結構?
你可以通過PRAGMA table_info (<yourtable>)
例如提取從基表中的列
String sqlstr = " PRAGMA table_info (" + table_name + ")";
Cursor csr = db.rawQuery(sqlstr, null);
所得cusors具有行與列: -
CID(ROWID)
名(列名稱)
類型(列類型例如INTEGER)
NOTNULL(0,如果可以爲null)
dflt_value(缺省值,如果一個)
峯(0,如果不是主鍵否則1,2的一部分...如果部分主鍵)
然後,您可以建立從這個SQL。
另一種選擇是提取SQL用於通過創建該表: -
SELECT sql FROM sqlite_master WHERE type='table' AND name='<yourtable>'
然後,您可以改變所產生的SQL,改變了基表名稱爲新表名。
第三種選擇是使用的東西複製表像
CREATE TABLE newtable AS SELECT * FROM basetable WHERE 0
然而,這不是結構,例如一個完整全面的副本主鍵不會被創建。
你的目標不明確!您希望以後在數據庫中使用相同的結構創建新表?如果是的話,你面臨的問題是什麼? –
複製表格,然後刪除(不是DROP)它全部(不使用WHERE子句)。 –
是的,我想創建具有相同結構的新表格。問題是我不知道如何在android @ahmad中獲得舊錶格的結構 – mrunalinimunna