在我的 Ruby-on-Railsdatabase.yml
文件中,我不小心创建了一个名称中带有正斜杠 ( /
) 的 PostgreSQL 数据库。
我无法通过 psql 命令删除此数据库,尝试使用各种转义序列。
在我的 Ruby-on-Railsdatabase.yml
文件中,我不小心创建了一个名称中带有正斜杠 ( /
) 的 PostgreSQL 数据库。
我无法通过 psql 命令删除此数据库,尝试使用各种转义序列。
用引号将您的数据库名称括起来:
DROP DATABASE "database/withslash";
从标识符和关键字文档中:
还有第二种标识符:分隔标识符或引用标识符。它是通过将任意字符序列括在双引号 (") 中而形成的。分隔标识符始终是标识符,而不是关键字。因此“select”可用于引用名为“select”的列或表,而不带引号的选择将被视为关键字,因此在需要表名或列名的地方使用时会引发解析错误。示例可以使用带引号的标识符编写,如下所示:
UPDATE "my_table" SET "a" = 5;
带引号的标识符可以包含任何字符,但代码为零的字符除外。
请注意,带引号的标识符区分大小写。
但是,您不能在连接到该数据库时删除数据库,因此您可能想使用命令行dropdb
命令。你的 shell 会解析引号,所以你想转义引号:
dropdb \"database/withslash\"