Android 并非所有表都是在SQLite数据库中创建的

Android 并非所有表都是在SQLite数据库中创建的,android,sql,sqlite,Android,Sql,Sqlite,我有以下问题: 每次我想访问Logcat中的“存储”表时,我都会看到以下错误消息: 10-24 15:09:06.955: E/SQLiteLog(20264): (1) no such table: Stores 但是当我删除数据库并再次创建所有表时,在Logcat中创建时没有看到任何错误。当我试图访问或写入表“Categories”时,我没有任何错误,只有“Stores”。当我稍后在sqlitestudio中浏览SQLite数据库时,我只看到带有我插入的值(nut no other)的表类

我有以下问题: 每次我想访问Logcat中的“存储”表时,我都会看到以下错误消息:

10-24 15:09:06.955: E/SQLiteLog(20264): (1) no such table: Stores
但是当我删除数据库并再次创建所有表时,在Logcat中创建时没有看到任何错误。当我试图访问或写入表“Categories”时,我没有任何错误,只有“Stores”。当我稍后在sqlitestudio中浏览SQLite数据库时,我只看到带有我插入的值(nut no other)的表类别,结果也显示“OpeningHours”丢失了。是否可能在尚未创建这些表时尝试访问这些表

这是我创建的代码:

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL(context.getString(R.string.sql_create));
}
这就是SQL代码

    <string name="sql_create">
CREATE  TABLE IF NOT EXISTS `Categories` (

  `idCategories` INTEGER  NOT NULL ,

  `name` TEXT,

  PRIMARY KEY (`idCategories`) );


CREATE  TABLE IF NOT EXISTS `Stores` (

  `idStores` INTEGER NOT NULL ,

  `name` TEXT NOT NULL ,

  `locationAdress` TEXT  ,

  `locationLongitude` INTEGER ,

  `locationLatitude` INTEGER ,

  `category` INTEGER  NOT NULL ,

  `telephoneNumerber` TEXT  ,

  PRIMARY KEY (`idStores`) );


CREATE  TABLE IF NOT EXISTS `OpeningHours` (

  `idOpeningHours` INTEGER  NOT NULL ,

  `store` INTEGER  NOT NULL ,

  `day` INTEGER ,

  `forenoon` TEXT  ,

  `afternoon` TEXT  ,

  PRIMARY KEY (`idOpeningHours`) );
    </string>

如果不存在“类别”,则创建表(
`idCategories`整数不为空,
`名称`文本,
主键(`idCategories`);
如果不存在“存储”,则创建表(
`idStores`整数不为空,
`name`文本不为空,
`地址`文本,
`LocationLength`整数,
`locationLatitude`整数,
`类别`整数不为空,
`电话号码`文本,
主键(`idStores`);
如果不存在“OpeningHours”,则创建表(
`idOpeningHours`整数不为空,
`存储`整数不为空,
`第`天整数,
`上午`文本,
`下午`文本,
主键(`IDOpenHours`);

Android
execSQL
执行一条语句:


这意味着您只创建了一个表-
OpeningHours
,这是SQL脚本中的最后一条语句。您需要在一个
execSQL
调用中分离每个create。

尝试从所有线程中仅使用一个SQLiteDatabase实例。这样可以避免访问SQLite数据库时出现许多问题