PostgreSQLのデータベースを介して列のサイズと入力を取得する方法

StackOverflow https://stackoverflow.com/questions/4471734

  •  11-10-2019
  •  | 
  •  

質問

以前のデータベースで手動で列の長さを変更しました。

しかし、HQLを介して新しいデータベースを作成した後、作成しています varchar(255) そして、私はそれをより長くする必要があります。

どのテーブルの列を変更する必要があるかを見つける必要がありますか?

手動で見つけることができますが、今では約200のテーブルがあり、これを行うにはクエリが必要です。

SQLクエリを使用して、列のタイプとその長さをPostgresで取得するにはどうすればよいですか?

役に立ちましたか?

解決

Information_schema テーブルはここであなたを助けます:

select *
from INFORMATION_SCHEMA.COLUMNS

あなたはを調べることができます table_name, column_name, data_typecharacter_maximum_length 結果セットの列。

他のヒント

この古い投稿に出くわした。 Redfilterの回答に基づいて、元の質問のクエリは次のとおりです。

select table_name, 
       column_name 
from INFORMATION_SCHEMA.COLUMNS 
where data_type = 'character varying' 
  and character_maximum_length = 200

次のような変更テーブルの構文と一緒に置く:

ALTER TABLE X ALTER COLUMN Y TYPE text;

このクエリを実行することで、必要なすべてのコマンドを生成できます。

select 'ALTER TABLE ' || table_name || ' ALTER COLUMN ' || column_name || ' TYPE text;'  
from INFORMATION_SCHEMA.COLUMNS 
where data_type = 'character varying' 
  and character_maximum_length = 200;

これが将来誰かを助けるか、少なくとも彼らをしばらく節約することを願っています!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top