2

将 OrmLite 与 android 一起使用,我尝试了一个简单的查询:

GenericRawResults<String[]> results = queryRaw("SELECT * FROM transaction");

不幸的是,我收到了一个例外:

near "transaction": syntax error: , while compiling: SELECT * FROM transaction

我发现这令人困惑,在逐步查看 Orm 通过编译语句生成的内容后,我意识到语法应该是:

GenericRawResults<String[]> results = queryRaw("SELECT * FROM `transaction`");

我只是有点困惑为什么需要这样做?

4

1 回答 1

5

“事务”是一个 SQLite3 关键字。

该页面的相关引用,位于最顶部:

SQL 标准规定了 [...] 不能用作表名的关键字 [...]
[...]
如果要使用关键字作为名称,则需要将其引用。

文档是你的朋友。*

* 除非不是。但在这种情况下,它是。

于 2012-08-23T21:15:29.667 回答