В документации есть очень полезная опция [ 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 - это кривоподелие, которое самостоятельно вносит изменения в запросы, набираемые пользователем, а также местами не по детски глючит и косячит. Не пользуйтесь им. Есть утилита командной строки psql
Спасибо за ответ, хотя он и неутешителен. Скрипты я пишу не для себя, а для внедрения, а они у нас дюже балованы. Есть ли альтернатива командной строке?
Может быть, речь идёт о создании таблицы командой:
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 отложить, но когда вернусь, попробую обновить версию сервера и начать все заново )
Я уже раз 20 писал - pgAdmin
Я уже раз 20 писал - pgAdmin - это кривоподелие, которое самостоятельно вносит изменения в запросы, набираемые пользователем, а также местами не по детски глючит и косячит. Не пользуйтесь им. Есть утилита командной строки psql
Спасибо за ответ, хотя он и
Спасибо за ответ, хотя он и неутешителен. Скрипты я пишу не для себя, а для внедрения, а они у нас дюже балованы. Есть ли альтернатива командной строке?
скрипты как раз лучше всего и
скрипты как раз лучше всего и пускать через psql. Это хорошая утилита и для скриптов идеальна:
psql -U пользователь -d база < скрипт.sql
пароль подставляете либо через переменную окружения PGPASSWORD либо через rc-файл.
Может быть, Вы и правы.
Может быть, Вы и правы. Внятная инструкция и доброе слово творят чудеса. )
Спасибо за советы.
альтернатива командной строке
Я бы советовал EMS SQL Manager. Он гораздо удобнее и PgAdmin, и командной строки. Платный, но есть Lite версия, которой мне лично достаточно.
Спасибо, попробую.
Спасибо, попробую.
В psql все то же самое. Я в
В psql все то же самое. Я в печали.
Что-то вы не так делаете
Что-то вы не так делаете значит. Только что проверил у себя - работает, например:
Может быть, речь идёт о создании таблицы из 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 отложить, но когда вернусь, попробую обновить версию сервера и начать все заново )