以前のデータベースで列の長さを手動で変更しました。
しかし、HQLを介して新しいデータベースを作成した後、それが作成varchar(255)されているので、それを長くする必要があります。
どのテーブルの列を変更する必要があるかを見つける必要がありますか?
手動で見つけることができますが、現在約200のテーブルがあり、これを行うにはクエリが必要です。
SQLクエリを使用してPostgresで列タイプとその長さを取得するにはどうすればよいですか?
以前のデータベースで列の長さを手動で変更しました。
しかし、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
次のaltertable構文と組み合わせます。
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;
これが将来誰かを助けるか、少なくとも彼らの時間を節約することを願っています!