gpt4 book ai didi

android - 并非所有表都在 SQLite 数据库中创建

转载 作者:行者123 更新时间:2023-11-29 18:02:28 26 4
gpt4 key购买 nike

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

10-24 15:09:06.955: E/SQLiteLog(20264): (1) no such table: Stores

但是当我删除数据库并重新创建所有表时,我在 Logcat 中创建时没有看到任何错误。当我尝试访问或写入表“类别”时,我没有任何错误,只有“商店”。当我稍后在 sqlitestudio 中浏览 SQLite 数据库时,我只看到带有我插入的值的表类别,没有其他,结果也缺少“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>

最佳答案

Android execSQL 执行单个语句:http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#execSQL(java.lang.String)

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

关于android - 并非所有表都在 SQLite 数据库中创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15185653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com