Postgres 9.4 Создать таблицу, если она не существует, например

Этот оператор выдает синтаксические ошибки:

CREATE TABLE IF NOT EXISTS "weChat_data_abc" LIKE "weChat_data_sample"

Таблица weChat_data_sample существует и пуста.

Я получаю сообщение об ошибке:

Error : ERROR:  syntax error at or near "LIKE"

Вывод ВЫБРАТЬ ВЕРСИЮ():

PostgreSQL 9.4.4 на x86_64-apple-darwin14.4.0, скомпилированный Apple LLVM версии 6.1.0 (clang-602.0.53) (на основе LLVM 3.6.0svn), 64-разрядный


person Jimmy Scray    schedule 10.09.2015    source источник


Ответы (1)


Ага! Я нашел ответ. Похоже, мне нужно заключить предложение LIKE в круглые скобки.

СОЗДАЙТЕ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ "weChat_data_abc" (НРАВИТСЯ "weChat_data_sample")

Документация здесь: http://www.postgresql.org/docs/9.4/static/sql-createtable.html

person Jimmy Scray    schedule 10.09.2015
comment
Использование идентификаторов в кавычках почти всегда является плохим выбором. Вам действительно следует избегать цитирования идентификаторов, в долгосрочной перспективе от них гораздо больше проблем, чем они того стоят. - person a_horse_with_no_name; 10.09.2015
comment
@a_horse_with_no_name Мне нужны идентификаторы в кавычках, так как мои таблицы написаны полуверблюжьим регистром. - person Jimmy Scray; 10.09.2015
comment
Как я уже сказал: не делайте этого, это действительно не стоит всех хлопот (и набора текста) - person a_horse_with_no_name; 10.09.2015
comment
@a_horse_with_no_name Можете ли вы привести пример, когда это может быть проблемой? - person Jimmy Scray; 10.09.2015