我使用createdb
在名称中间创建了一个带有连字符的数据库。这成功创建了数据库,但在psql
交互式客户端中,如果我尝试这样的命令,我会收到语法错误:
ALTER DATABASE my-database SET SCHEMA = myschema,public;
psql
在“ - ”
是否有一些关于什么算作有效PostgreSQL数据库名称的文档?
我应该强调而不是连字符吗?
答案 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;