SQLite3 C++ "CASE"附近的查询:语法错误
SQLite3 C++ Query near "CASE": syntax error
使用SQLite3 c++实现虽然我相信这个错误是更普遍的。我只是想写这样一个语句:
"如果'Players'表中不存在'lastPlayed'列,则ALTER表并将其添加到该表中"
这是我的查询:
query = string("CASE WHEN COL_LENGTH('Players', 'lastPlayed') IS NULL ")
+ " BEGIN "
+ "ALTER TABLE Players "
+ "ADD lastPlayed DATETIME DEFAULT now"
+ " END "
;
错误:
near "CASE":语法错误
我在这里做错了什么?
您的CASE
语句很好。错误在于COL_LENGTH
不是SQLite中的内置函数。
你可以做什么来实现你的结果是删除CASE
语句,并在你的代码,只是试图改变球员表,以添加一个lastplays列。然后将alter语句包装在try-catch块中。如果列已经存在,则抛出异常,否则表将被成功修改,您可以继续。
试试这个语法
CASE
WHEN expr THEN expr
WHEN expr THEN expr
.
.
END
https://www.sqlite.org/lang_expr.html 相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 1d 智能指针不适用于语法 (*)++
- 助记符和指向成员语法的指针
- 有人能分解一下这个c++模板的语法吗
- 查询SQLite数据库中的日期
- C++避免重复声明的语法是什么
- QMetaObject invokeMethod的基于函数指针的语法
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 如何在ArangoDb AQL查询中指定数据库
- 为什么包含windows.h会产生语法错误,从而阻止类的实例化?(C2146,C2065)
- Qt SQLite没有查询或参数计数不匹配
- 如何使用c++在VS 2019上运行SQL查询
- 从返回的顶点缓冲区查询顶点结构
- 单独定义模板化嵌套类方法的正确语法
- 共享指针和具有自定义删除程序的唯一指针之间的语法差异背后的任何原因
- 错误 C2760:语法错误:映射迭代器上意外的标记"标识符",预期的";"
- 以非特权用户身份查询 NTFS 特殊文件的元数据?
- C++程序中存在SQL查询语法错误,但可在MySQL工作台中使用
- 语法查询,调用Visual C++中的模块
- SQLite3 C++ "CASE"附近的查询:语法错误