使用SQLite3 C ++实现虽然我认为这个错误更普遍。 我只是试图做一个声明:
"如果列' lastPlayed'表' Players'中不存在,更改表格并将其添加到表格中#34;
这是我的疑问:
query = string("CASE WHEN COL_LENGTH('Players', 'lastPlayed') IS NULL ")
+ " BEGIN "
+ "ALTER TABLE Players "
+ "ADD lastPlayed DATETIME DEFAULT now"
+ " END "
;
错误:
near" CASE":语法错误
我在这里做错了什么?
答案 0 :(得分:1)
答案 1 :(得分:1)
您的CASE
声明没问题。错误在于COL_LENGTH
不是SQLite中的内置函数。
您可以执行的操作是删除CASE
语句,并在代码中尝试更改Players表以添加lastPlayed列。然后将alter语句包装在try-catch块中。当列已经存在时,将抛出异常,否则表将被成功更改,您可以继续。