在 Sqlite 中创建表之前是不是必须删除表?

Posted

技术标签:

【中文标题】在 Sqlite 中创建表之前是不是必须删除表?【英文标题】:Do I have to drop the table before creating it in Sqlite?在 Sqlite 中创建表之前是否必须删除表? 【发布时间】:2012-07-10 09:17:54 【问题描述】:

当我初始化我的 Sqlite 数据库时,我按如下方式进行:

 var db = window.openDatabase("Database", "1.0", "Cordova Demo", 20000);
 db.transaction(populateDB, errorCB, successCB);
 function populateDB(tx) 
tx.executeSql('DROP TABLE IF EXISTS TimeTable');
tx.executeSql('CREATE TABLE IF NOT EXISTS TimeTable (id  INTEGER PRIMARY KEY      AUTOINCREMENT, Day, Subject, StartingTime, EndingTime)');

现在,我不希望每次调用此函数时都删除表。 但是当我删除这一行时:

tx.executeSql('DROP TABLE IF EXISTS TimeTable');

显示错误:

[INFO] Error processing SQL: 1

有解决办法吗?

【问题讨论】:

我认为您首先需要删除数据库级别的表..然后运行更新的脚本,您已在其中评论了drop table 语句。 数据库级文件在哪里写? 我告诉你首先你必须从数据库中删除这个表,因为它已经存在于数据库中..这就是为什么我认为你应该首先从数据库中清除表..但是当你有create table "if not exists"那么这个东西不是必需的..你可以忽略最后一条评论。 试试这个解决方案:***.com/questions/9109438/… 【参考方案1】:

您可以尝试那里发布的解决方案:

phoneGap android - Populate database once "Error processing SQL:1"

【讨论】:

以上是关于在 Sqlite 中创建表之前是不是必须删除表?的主要内容,如果未能解决你的问题,请参考以下文章

在 sqlite 数据库中创建表时出现语法错误

无法在 Hive 中创建表

实体框架 6 不在 SQLite 数据库中创建表

Swift中SQLite使用2

Qt Sqlite 只从脚本创建一张表

防止用户在 H2 中创建表