任何数据库表名都可以支持双引号“吗?

Ani*_*rma 0 jdbc naming-convention sql-standard

我需要知道是否有数据库支持双引号作为其表名的一部分。我对 JDBC 兼容的数据库特别感兴趣。如果他们这样做了,我能知道怎么做吗?

小智 5

根据 SQL 标准,这应该可以通过双引号来实现(类似于字符串常量中的转义单引号)。

至少 Postgres 确实支持这一点(而 Oracle 不支持,导致“ ORA-03001:未实现的功能”)

create table "really""stupid_name"(id integer);
Run Code Online (Sandbox Code Playgroud)

在线示例: https: //rextester.com/JYCW13692


然而,一开始就使用带引号的标识符并不是一个好主意。更不用说包含双引号的标识符了。

我强烈建议你要这样做。

  • @ypercubeᵀᴹ:实际上我觉得很悲伤,当 SQL 标识符的规则在 30 多年前就已经制定出来时,SQLite 屈服并接受所有非标准标识符类型 - 预先约会所有选择忽略这一点的 DBMS。 (2认同)