PostgreSQL v7.4 データベースのテーブルの CHAR 列の長さを変更する必要があります。このバージョンでは、ALTER TABLE ステートメントを使用して列の型やサイズを直接変更する機能はサポートされていませんでした。したがって、たとえば列を CHAR(10) から CHAR(20) に直接変更することはできません (ええ、「varchars を使用する」ことはわかっていますが、現在の状況ではオプションではありません)。これを最もよく達成するためのアドバイスやコツはありますか?私の最初の考え:
-- テーブルのデータを新しい「保存」テーブルに保存します。CREATE TABLE save_data AS SELECT * FROM table_to_change;
-- 変更する最初の列から列を下にドロップします。ALTER TABLE table_to_change DROP column_name1; -- 変更が必要な最初の列から始まる各列に対して ALTER TABLE table_to_change DROP column_name2; ...
-- CHAR 列の新しいサイズを使用して、列を追加し直します。 ALTER TABLE table_to_change ADD column_name1 CHAR(new_size); -- ALTER TABLE table_to_change ADD column_name2 の上にドロップされた各列に対して...
-- 「保存」テーブルからデータベースをコピーします UPDATE table_to_change SET column_name1=save_data.column_name1, -- column_name2=save_date.column_name2 の上で削除/再追加された各列に対して、 ... FROM save_data WHERE table_to_change.primary_key=save_data.primay_key;
うん!うまくいけば、より良い方法がありますか?任意の提案をいただければ幸いです。ありがとう!