如何在 SQL 查询中使用保留字?

How to use reserved words in SQL query?

我已经使用准备好的语句尝试了几个想法,但是 none 其中的想法奏效了。它们是:

String insertSQL = "INSERT INTO APP.TEST (Name, 'role') VALUES (?, ?)";

String insertSQL = "INSERT INTO APP.TEST (Name, [role]) VALUES (?, ?)";

String insertSQL = "INSERT INTO APP.TEST (Name, role) VALUES (?, ?)";

Apache Derby's documentation 指定分隔的 SQL 标识符可以用双引号引起来。所以你的 SQL 字符串最终看起来像:

INSERT INTO APP.TEST (Name, "role") VALUES (?, ?)

因为它被放置在一个已经用双引号引起来的字符串中,反斜杠转义内引号:

String insertSQL = "INSERT INTO APP.TEST (Name, \"role\") VALUES (?, ?)";

Derby 的 list of reserved words 目前没有将 role 指定为保留,但如果在您的实现中它看起来是保留的,您必须相应地引用它。