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