[解決済み] PostgreSQLで制約を名前で削除する方法は?
2023-03-30 06:30:21
質問
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;
もちろん、クエリが完全なalterステートメントを返すようにすることもできます。
SELECT 'ALTER TABLE '||table_name||' DROP CONSTRAINT '||constraint_name||';'
FROM information_schema.constraint_table_usage
WHERE table_name in ('your_table', 'other_table')
同じテーブルを持つスキーマが複数ある場合、WHERE句(およびALTER文)にtable_schemaを含めることを忘れないでください。
関連
-
[解決済み] psql: FATAL: データベース "<user>" が存在しない
-
[解決済み] PostgreSQLの場合。PostgreSQLのテーブルを表示する
-
[解決済み] PostgreSQLの "DESCRIBE TABLE"
-
[解決済み] PostgreSQL コマンドラインユーティリティ: psql を終了する方法
-
[解決済み] PostgreSQLのユーザーパスワードを変更する方法を教えてください。
-
[解決済み] PostgreSQLデータベースにアクティブな接続がある場合、そのデータベースを削除する方法は?
-
[解決済み] コマンドライン引数でPostgreSQLの.sqlファイルを実行する
-
[解決済み] PostgreSQLデータベースへのSQLダンプのインポート
-
[解決済み] PostgreSQLの場合。PostgreSQLですべてのテーブルのOWNERを同時に変更する
-
[解決済み】PostgreSQLで主キーの自動インクリメントを設定する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PostgreSQLはバッチ実行のためにSQLをファイルに実装しています。
-
[解決済み] PostgreSQLのクエリを記録する方法は?
-
[解決済み] Postgres で、あるデータベースから別のデータベースにテーブルをコピーする
-
[解決済み] Postgresqlの場合。パスワード付きで psql を実行するスクリプト
-
[解決済み】PSQLコマンドを使用してホスト名とポートを検索する
-
[解決済み] PostgreSQLのINSERT ON CONFLICT UPDATE(upsert)は除外された値をすべて使用します。
-
[解決済み] Postgres/SQLで2つの整数の最小値/最大値を取得する方法は?
-
[解決済み] enumが持ちうるすべての値を取得するSQLクエリ
-
[解決済み] Postgres でシーケンスをリセットし、id 列を新しいデータで埋めるにはどうすればよいですか?
-
[解決済み] PostgreSQL公式Dockerイメージの設定ファイルをカスタマイズする方法とは?