[解決済み] Postgresql でスキーマとテーブル名だけ知っていて主キー制約を削除する。
2022-03-10 20:02:37
質問
私の知る限り、Postgresqlで主キーを削除する唯一の方法は、次のとおりです。
ALTER TABLE schema.tableName DROP CONSTRAINT constraint_name;
デフォルトの制約名は
tableName_pkey
. しかし、テーブルの名前がすでに変更されている場合、元のテーブル名を取得して正しい制約名を作成することができないことがあります。
例えば、以下のように作成されたテーブルの場合
A
にリネームした後
B
制約が残る
A_pkey
が、テーブル名だけ
B
.
スキーマ名とテーブル名だけ知っていて、pkey制約を削除する正しい方法を知っていますか?
私はこれを行うためのプログラムを書いているので、私はSQLクエリのみを使用する必要があります。pgAdminを開いて制約名を確認する"のような解決策はうまくいきません。
解決方法は?
カタログテーブルの情報は、このように使うことができます。
idを主キーとするテーブルを作成する
create table test1 (id int primary key, name text);
キーを削除するSQLを作成
select concat('alter table public.test1 drop constraint ', constraint_name) as my_query
from information_schema.table_constraints
where table_schema = 'public'
and table_name = 'test1'
and constraint_type = 'PRIMARY KEY';
という結果になります。
alter table public.test1 drop constraint test1_pkey
このクエリを抽出するストアド関数を作成し
execute
それを
関連
-
[解決済み】Excelに合体的な関数はありますか?
-
[解決済み】一括読み込みデータ変換エラー(切り捨て)
-
[解決済み] pg_restoreです。[archiver] 入力ファイルはテキスト形式のダンプであるように見えます。psql を使用してください。
-
[解決済み] SQL Server サブクエリが 1 つ以上の値を返しました。これは、サブクエリが =, !=, <, <= , >, >= のように続く場合は許可されません。
-
[解決済み] ORA-00918: 列があいまいに定義されています」を解決する方法
-
[解決済み] アクセスクエリーエラー(from句のシンタックスエラー)
-
[解決済み] ORA-01821: ISO 8601 のローカルタイム付き日付のフォーマットが認識されないエラー
-
[解決済み] SQLiteでどのようにピボットするか、つまり、長い形式で保存されたテーブルを広い形式で選択するか?
-
[解決済み] SQLで複数のGROUP BYを使用する場合とは?
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Excelに合体的な関数はありますか?
-
[解決済み】集約関数のないTSQLピボット
-
[解決済み] 3を挿入すると「ORA-01438: この列で許容される指定精度より大きい値」と表示される。
-
[解決済み] バックエンドバージョンでは、データベースのダイアグラムやテーブルのデザインはサポートされていません。
-
[解決済み】SQL ServerでIdentityカラムを更新する方法は?
-
[解決済み] INSERT ステートメントが FOREIGN KEY 制約と競合する - SQL Server
-
[解決済み] ORA-01790: 式は、対応する式と同じデータ型でなければならないエラーが発生するケース
-
[解決済み] SQL Server サブクエリが 1 つ以上の値を返しました。これは、サブクエリが =, !=, <, <= , >, >= のように続く場合は許可されません。
-
[解決済み] ORA-04063: ビューにエラーがあります
-
[解決済み] ORA-00918: 列があいまいに定義されています」を解決する方法