Я автоматически сгенерировал SQL запросов, основанных на каком-либо условии автоматически сгенерированного результата, приведенного в этом запросе
DO
$$
BEGIN
IF NOT EXISTS (SELECT FROM pg_attribute
WHERE attrelid = 'public.registration'::regclass -- table name here
AND attname = 'price' -- column name here
AND NOT attisdropped
) THEN
ALTER TABLE public.registration
ADD COLUMN price text UNIQUE NULL;
ELSE
ALTER TABLE public.registration
ALTER COLUMN price TYPE text,
ADD CONSTRAINT IF NOT EXISTS registration_price_key UNIQUE (price);
END IF;
END
$$
Таким образом, таблица уже существует, если столбец отсутствует, он будет добавлен и уникальное ограничение будет добавлено к этой проблеме столбца, если она еще не существует
Я получаю, что синтаксическая ошибка в этой строке "около НЕ
ADD CONSTRAINT IF NOT EXISTS registration_price_key UNIQUE (price);
, но почему?