読者です 読者をやめる 読者になる 読者になる

walkingmask’s development log

IT系の情報などを適当に書いていきます

MENU

shell scriptでrandomな値のmysql tableを作成する

課題では友人から貰ったperl scriptを改変して使わせてもらったけど,Bashでできないかと思って作ったのをlog.

csvファイルを作成

せっかくだからprogressを出力させてみる.可愛い.

numColumn=300000
for i in `seq $numColumn`
do
	printf "\r exporting... \t\t$i/$numColumn"
	echo "$i,$((RANDOM%30000))" >>testtb.csv
done
echo "\a"

mysqlcsv形式のデータをload

ファイル読み込むだけだから早い.

MYSQL_PWD="******" mysql --local-infile=1 -u user -D db <<EOF
create table tb1 (id int, record int);
load data local infile './testtb.csv' into table tb1 fields terminated by ',' enclosed by '"' (id, record);
EOF

その他

講義用に使ったその他のコード.

# copy table
create table tb2;
insert into tb2 select * from tb1;

# add index
alter table tb2 add index index_name(record);

# delete table
MYSQL_PWD="******" mysql -u user -D db -e "drop table tb1, tb2"

# remove csv file
rm ./testtb.csv

gist

上記のものをまとめて,コマンド風に仕上げたものをgistにアップした.前からこういうの作ってみたかったから作ったよ!
mkrtb.sh · GitHub

(2015/12/24 00:22)