Что такое допустимое имя базы данных PostgreSQL?
Я создаю базу данных с дефисом в середине имени с помощью createdb
. Это успешно создает базу данных, но внутри интерактивного клиента psql
я получаю синтаксическую ошибку, если я пробую такую команду:
ALTER DATABASE my-database SET SCHEMA = myschema,public;
psql
жалуется на синтаксическую ошибку в или рядом с "-"
Есть ли какая-то документация для того, что считается допустимым именем базы данных PostgreSQL?
Должен ли я просто подчеркивать вместо дефиса?
Ответы
Ответ 1
Запрошенная вами документация находится здесь:
http://www.postgresql.org/docs/current/interactive/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS
Большинство людей просто придерживаются строчных букв, числовых цифр и подчеркиваний - чтобы не печатать все кавычки все время.
Ответ 2
Попробуйте поместить его в двойные кавычки:
ALTER DATABASE "my-database" SET SCHEMA = myschema,public;
Ответ 3
Я столкнулся с одной проблемой, и выше ответы помогли мне. Итак, обмен сценарием на 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;