什么是有效的PostgreSQL数据库名称?

时间:2012-04-18 19:42:45

标签: postgresql

我使用createdb在名称中间创建了一个带有连字符的数据库。这成功创建了数据库,但在psql交互式客户端中,如果我尝试这样的命令,我会收到语法错误:

ALTER DATABASE my-database SET SCHEMA = myschema,public;

psql在“ - ”

处或附近抱怨语法错误

是否有一些关于什么算作有效PostgreSQL数据库名称的文档?

我应该强调而不是连字符吗?

3 个答案:

答案 0 :(得分:27)

您询问的文档在这里:

http://www.postgresql.org/docs/current/interactive/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS

大多数人只是坚持使用小写字母,数字和下划线 - 以避免一直输入引号。

答案 1 :(得分:16)

尝试将其放在双引号中:

ALTER DATABASE "my-database" SET SCHEMA = myschema,public;

答案 2 :(得分:1)

我遇到了一个问题,上述答案对我有所帮助。所以在dbname

上共享场景

场景:我尝试使用PG admin III更改数据库名称。我的数据库名称是My_Database

在查询下运行失败:

ALTER DATABASE My_Database RENAME TO dba;
ALTER DATABASE [My_Database] RENAME TO dba;

ALTER DATABASE 'My_Database' RENAME TO dba;

然后我在下面尝试了它的成功

ALTER DATABASE "My_Database" RENAME TO dba;