我在 DELETE 语句中遇到 SQLite 语法错误

2024-03-12

我有一个非常奇怪的 sqlite 语法错误。

const char *statement = "DELETE FROM quotes t1 WHERE t1.id=127";
int returnCode = sqlite3_exec(database, statement, NULL, NULL, &errorMsg);
if (returnCode!=SQLITE_OK) 
{
    fprintf(stderr, "Error: %s", errorMsg);
    sqlite3_free(errorMsg);
}

 Error: near "t1": syntax error

但这段代码运行良好

const char *statement = "DELETE FROM quotes WHERE id=127";
int returnCode = sqlite3_exec(database, statement, NULL, NULL, &errorMsg);

SQLite 不允许在删除语句中使用别名。

See the manual http://www.sqlite.org/lang_delete.html对于允许的语法。


删除-stmt http://www.sqlite.org/syntaxdiagrams.html#delete-stmt

限定表名 http://www.sqlite.org/syntaxdiagrams.html#qualified-table-name

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我在 DELETE 语句中遇到 SQLite 语法错误 的相关文章

随机推荐