PostgreSQL中连字符(-)的转义序列是什么?

90

我想将一个数据库重命名为带连字符 (-) 的名称。

ALTER DATABASE one RENAME TO one-two;

同时,psql返回了一个错误:

ERROR:  syntax error at or near "-"

我应该使用什么转义序列来转义"-"字符或者有其他方法吗?

注意:我已经尝试过'\-'但是没有起作用。

谢谢。


1
你使用连字符而不是下划线有什么原因吗? - Bruce Alderman
7
是的,Bruce,我正在使用一个已经创建并维护了几年的系统。这次重命名是为了与该系统中其他数据库命名规范保持一致。 :-) - Shamal Karunarathne
4个回答

135

双引号应该可以解决这个问题。但是在引用数据库的任何地方,您都必须始终使用带引号的标识符。

ALTER DATABASE one RENAME TO "one-two";

5

混合使用单引号和双引号,如下所示:

psql --command='create database "db-name-with-dashes"'

-1

反引号`是用于引用数据库的引用标识符:

ALTER DATABASE one RENAME TO `one-two`;

2
不适用于Postgres,需要使用双引号。 - Kamafeather

-5

psql -d -c "创建扩展如果不存在 "'"uuid-ossp"'";"


2
无关的回答 - Akhilesh Mishra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接