Postgres Ограничения удаления для таблицы с использованием подстановочных знаков - PullRequest
0 голосов
/ 22 апреля 2020

Можно ли удалить ограничения, используя подстановочные знаки name_*, чтобы отбрасывать все те, которые начинаются с имени, независимо от окончания?

1 Ответ

0 голосов
/ 22 апреля 2020

Вы не можете использовать подстановочный знак в ALTER TABLE DROP CONSTRAINT Однако вы можете сделать что-то, как указано ниже:

DO $$
DECLARE r RECORD;
BEGIN
  FOR r in  SELECT
                conrelid::regclass,
                conname
            FROM
                pg_constraint
            WHERE
                contype IN ('f', 'p', 'u', 'c')
                AND connamespace = 'public'::regnamespace
                AND conname ~* '^test*'
  LOOP
     EXECUTE 'ALTER TABLE % DROP CONSTRAINT %',r.conrelid, r.conname;
  END LOOP;
END;
$$ language plpgsql;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...