PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Премахнете ограничението по име в Postgresql

Трябва да извлечете имената на таблиците, като изпълните следната заявка:

SELECT *
FROM information_schema.constraint_table_usage
WHERE table_name = 'your_table'

Като алтернатива можете да използвате pg_constraint за извличане на тази информация

select n.nspname as schema_name,
       t.relname as table_name,
       c.conname as constraint_name
from pg_constraint c
  join pg_class t on c.conrelid = t.oid
  join pg_namespace n on t.relnamespace = n.oid
where t.relname = 'your_table_name';

След това можете да изпълните необходимия оператор ALTER TABLE:

ALTER TABLE your_table DROP CONSTRAINT constraint_name;

Разбира се, можете да накарате заявката да върне пълния израз за промяна:

SELECT 'ALTER TABLE '||table_name||' DROP CONSTRAINT '||constraint_name||';'
FROM information_schema.constraint_table_usage
WHERE table_name in ('your_table', 'other_table')

Не забравяйте да включите table_schema в клаузата WHERE (и израза ALTER), ако има няколко схеми с едни и същи таблици.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да конвертирате точков текст в геометрия

  2. Laravel where условие - pgsql заявка

  3. Първата и последната стойност на прозоречната функция в един ред в PostgreSQL

  4. Как да вмъкна в име на таблица като псевдоним с помощта на помощник за вмъкване на pg-promise?

  5. Rails Activerecord Relation:използване на подзаявка като таблица за SQL оператор за избор