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

时间:2015-04-05 16:22:50

标签: sql database derby

我已经尝试了几个使用预处理语句的想法,但没有一个有效。这些是:

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 (?, ?)";

1 个答案:

答案 0 :(得分:2)

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指定为保留,但如果在您的实施中它似乎是保留的,则必须相应地引用它。