PostgreSQLのデータベースを介して列のサイズと入力を取得する方法
-
11-10-2019 - |
質問
以前のデータベースで手動で列の長さを変更しました。
しかし、HQLを介して新しいデータベースを作成した後、作成しています varchar(255)
そして、私はそれをより長くする必要があります。
どのテーブルの列を変更する必要があるかを見つける必要がありますか?
手動で見つけることができますが、今では約200のテーブルがあり、これを行うにはクエリが必要です。
SQLクエリを使用して、列のタイプとその長さをPostgresで取得するにはどうすればよいですか?
解決
Information_schema テーブルはここであなたを助けます:
select *
from INFORMATION_SCHEMA.COLUMNS
あなたはを調べることができます table_name
, column_name
, data_type
と character_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;
これが将来誰かを助けるか、少なくとも彼らをしばらく節約することを願っています!
所属していません StackOverflow