PostgreSQLのテーブルのカラムを他のTABLEにうつしたいときに使ったもの。
pgAdminIIIで既存テーブル見て、次のようなカラムを他のテーブルにうつしたいなーと思いました。
a smallint,
b smallint,
c real,
まぁ3つくらいなら手でやってもいいですが、10超えてくると面倒…。
で、次のようなAWKスクリプトファイル(ここではtest.awk)を用意。
{
# 行頭のスペースとタブ削除
sub(/^[ \t]+/, "", $0);
# カンマ削除
sub(/,/, "", $0);
# SQL文追加して出力
print "ALTER TABLE testtable ADD "$0";";
}
これで
awk -f test.awk test.txt > test2.txt
とすれば、
ALTER TABLE testtable ADD a smallint;
ALTER TABLE testtable ADD b smallint;
ALTER TABLE testtable ADD c real;
となってめでたしめでたし。