【问题标题】:CREATE TABLE IF NOT EXISTS statement in SQLiteSQLite 中的 CREATE TABLE IF NOT EXISTS 语句
【发布时间】:2015-05-16 04:42:18
【问题描述】:

我有一个 WPF 应用程序,我通过 ADO.NET (http://adodotnetsqlite.sourceforge.net/) 访问 SQLite 数据库。到目前为止一切正常,但是当我尝试执行以下 SQL 时:

 sqlite_cmd.CommandText = "CREATE TABLE IF NOT EXISTS notes (id integer primary key, text varchar(100));";
 sqlite_cmd.ExecuteNonQuery();

我得到以下异常:

An exception of type 'Finisar.SQLite.SQLiteException' occurred in SQLite.NET.dll but was not handled in user code.
Additional information: near "NOT": syntax error

当我删除 IF NOT EXISTS 部分时,它工作正常,但我只想在表不存在时创建表。是不是我做错了什么?

【问题讨论】:

标签: sql sqlite


【解决方案1】:

This question 有一些答案可能会有所帮助。然而,从那个问题来看,this answer 建议 SQLite 3.3 及更高版本支持IF NOT EXISTS。

根据该问题的答案,您可以尝试使用以下(稍作修改)查询选择名为“notes”的表的 COUNT 个:

SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name='notes';

然后您可以测试该查询的结果。如果有 0 个结果,则创建表。否则,不要创建表。

【讨论】:

    猜你喜欢
    • 2016-09-16
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-02
    • 2011-09-25
    相关资源
    最近更新 更多