如何在 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
指定为保留,但如果在您的实现中它看起来是保留的,您必须相应地引用它。
我已经使用准备好的语句尝试了几个想法,但是 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
指定为保留,但如果在您的实现中它看起来是保留的,您必须相应地引用它。