在 MySQL 查询中转义连字符(不使用反引号)

Escaping hyphen in MySQL query (not using a backtick)

我们有一个现有的架构,我们正在尝试将一些石英 table 放入其中,但是 table 的名称中包含连字符,因此我们想使用前缀像“08-Scheduling_QUARTZ_”

由于 quartz 不将任何查询包含在反引号中,因此前缀不起作用。

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '08-Scheduling_QUARTZ_TRIGGERS SET TRIGGER_STATE = 'WAITING' WHERE SCHED_NAME' at line 1]]

想知道是否有 在 mysql 查询 中除了整个 [=35] 之外还有其他方法可以转义“-” =]名字?

我试过了

x'-'x

x\-x

x"-"x

x`-`x

不可以,如果标识符带有某些标点符号,您必须对其进行定界。

在MySQL中,默认的标识符分隔符是反引号。

如果启用 ANSIANSI_QUOTES SQL 模式,则可以使用双引号作为标识符分隔符。

如果您不想使用分隔符,则必须选择不同的约定来为您的 table 名称添加前缀。例如,您可以使用 _

阅读 https://dev.mysql.com/doc/refman/8.0/en/identifiers.html 以了解有关不带定界符的标识符中允许的字符的更多详细信息。