Android 如何仅复制表结构?

Android 如何仅复制表结构?,android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,我想创建一个数据库。它最多有9个表,将来可能会超过。但表的结构(列数和列名)对于所有表都是相同的。我知道有一个选项可以复制表的结构,重命名并使用它,但我不知道如何准确地执行。请给我相关的答案,这样可以减少我的代码。您可以通过PRAGMA table\u info()从基表中提取列。 e、 g 结果CUSOR具有带列的行:- cid(rowid) 名称(列名称) 类型(列类型,例如整数) notnull(如果可以为null,则为0) dflt_值(如果有默认值) pk(如果不是主键的一部分,则为0

我想创建一个数据库。它最多有9个表,将来可能会超过。但表的结构(列数和列名)对于所有表都是相同的。我知道有一个选项可以复制表的结构,重命名并使用它,但我不知道如何准确地执行。请给我相关的答案,这样可以减少我的代码。

您可以通过
PRAGMA table\u info()从基表中提取列。

e、 g

结果CUSOR具有带列的行:-

cid(rowid)

名称(列名称)

类型(列类型,例如整数)

notnull(如果可以为null,则为0)

dflt_值(如果有默认值)

pk(如果不是主键的一部分,则为0,否则为1,2…如果是主键的一部分)

然后,您可以从中构建SQL


另一种选择是通过以下方式提取用于创建表的SQL:-

SELECT sql FROM sqlite_master WHERE type='table' AND name='<yourtable>'

但是,这不是结构的完整全面副本,例如,主键未创建。

您的目标不明确!以后是否要在数据库中创建具有相同结构的新表?如果是,您面临的问题是什么?复制表,然后全部删除(而不是删除)(不使用WHERE子句)。是的,我想创建具有相同结构的新表。问题是我不知道如何在android@ahmad中获得旧表的结构
SELECT sql FROM sqlite_master WHERE type='table' AND name='<yourtable>'
CREATE TABLE newtable AS SELECT * FROM basetable WHERE 0