Добавить уникальный, если ограничений не существует, проверить в одну строку? - PullRequest
0 голосов
/ 22 апреля 2020

Я автоматически сгенерировал 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);

, но почему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...