我想创建一个数据库。它将来可能会超过9个表。但是表的结构(列数和列名)对于所有表都是相同的。我知道有一个选项可以复制表的结构并重命名并使用它,但我不知道该怎么做。请给我相关的答案,以便减少我的代码。
答案 0 :(得分:0)
您可以通过PRAGMA table_info (<yourtable>)
e.g。
String sqlstr = " PRAGMA table_info (" + table_name + ")";
Cursor csr = db.rawQuery(sqlstr, null);
生成的cusors包含列: -
cid (rowid)
名称(列名称)
输入(列类型,例如INTEGER)
notnull (0如果可以为null)
dflt_value (默认值为1)
pk (如果不是主键的一部分则为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
但是,这不是结构的完整全面副本,例如未创建主键。