-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