CREATE TABLE

В документации есть очень полезная опция [ IF NOT EXISTS ]
В жизни pgAdmin на CREATE TABLE IF NOT EXISTS qqq ... ругается
ERROR: syntax error at or near "not"
LINE 1: create table if not exists qqq

Что делать и кто виноват? Как побороть/обойти?

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Я уже раз 20 писал - pgAdmin

Я уже раз 20 писал - pgAdmin - это кривоподелие, которое самостоятельно вносит изменения в запросы, набираемые пользователем, а также местами не по детски глючит и косячит. Не пользуйтесь им. Есть утилита командной строки psql

Спасибо за ответ, хотя он и

Спасибо за ответ, хотя он и неутешителен. Скрипты я пишу не для себя, а для внедрения, а они у нас дюже балованы. Есть ли альтернатива командной строке?

скрипты как раз лучше всего и

скрипты как раз лучше всего и пускать через psql. Это хорошая утилита и для скриптов идеальна:

psql -U пользователь -d база < скрипт.sql

пароль подставляете либо через переменную окружения PGPASSWORD либо через rc-файл.

Может быть, Вы и правы.

Может быть, Вы и правы. Внятная инструкция и доброе слово творят чудеса. )
Спасибо за советы.

альтернатива командной строке

Изображение rfedotov

Я бы советовал EMS SQL Manager. Он гораздо удобнее и PgAdmin, и командной строки. Платный, но есть Lite версия, которой мне лично достаточно.

Спасибо, попробую.

Спасибо, попробую.

В psql все то же самое. Я в

В psql все то же самое. Я в печали.

Что-то вы не так делаете

Что-то вы не так делаете значит. Только что проверил у себя - работает, например:

CREATE TABLE IF NOT EXISTS qqq (id INT);

Может быть, речь идёт о создании таблицы из SELECT`а?

Может быть, речь идёт о создании таблицы командой:
CREATE [TEMPORARY] TABLE table_name AS SELECT... ?
Там действительно не проходит проверку синтаксис:
CREATE [TEMPORARY] TABLE IF NOT EXISTS table_name AS SELECT...
Для такого случая я делаю:
DROP TABLE IF EXISTS table_name;
CREATE [TEMPORARY] TABLE table_name AS SELECT... ;

нет-нет, именно самый

нет-нет, именно самый облегченный вариант - CREATE TABLE IF NOT EXISTS qqq (id INT);
Сейчас, некоторый аврал и пришлось освоение postgreSql отложить, но когда вернусь, попробую обновить версию сервера и начать все заново )

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023