SQLite中的CREATE TABLE IF NOT EXISTS语句

时间:2015-03-13 15:52:51

标签: sql sqlite

我有一个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部分时,它工作正常,但我想创建表,只有它不存在。有什么我做错了吗?

1 个答案:

答案 0 :(得分:4)

This question有一些可能有帮助的答案。但是,从这个问题来看,this answer表明SQLite 3.3及更高版本支持IF NOT EXISTS

根据该问题的答案,您可以尝试选择名为' notes'使用此(稍加修改)查询:

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

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