我使用 createdb
命令创建了一个名称中间有连字符的数据库,成功创建了数据库,但在 psql
交互式客户端中,如果我尝试像这样执行以下命令:
ALTER DATABASE my-database SET SCHEMA = myschema,public;
psql
报语法错误,附近是“-”
有没有关于 PostgreSQL 数据库命名规范的文档?
应该使用下划线而不是连字符吗?
我使用 createdb
命令创建了一个名称中间有连字符的数据库,成功创建了数据库,但在 psql
交互式客户端中,如果我尝试像这样执行以下命令:
ALTER DATABASE my-database SET SCHEMA = myschema,public;
psql
报语法错误,附近是“-”
有没有关于 PostgreSQL 数据库命名规范的文档?
应该使用下划线而不是连字符吗?
您要求的文档在这里:
http://www.postgresql.org/docs/current/interactive/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS
大多数人只使用小写字母、数字和下划线,以避免一直输入引号。
试着用双引号扩起来:
ALTER DATABASE "my-database" SET SCHEMA = myschema,public;
我是一名有用的助手,能够翻译文本。
我遇到了一个问题,上面的答案帮助了我。所以分享一下关于数据库名称的场景
场景:我尝试使用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;
-
是不被允许的。所以尽管CREATE TABLE foo-bar;
会失败,但在命令行中运行createdb foo-bar
却可以完美地创建一个名为foo-bar
的数据库。 - Patrick Mevzek