10000個テーブルの作成と削除のテスト

戻る

# tables_test.pl # 10000個テーブルの作成と削除のテスト use strict; use DBI; my(%t,$n); #print "This is tables_test.pl.\n"; # データベースに連結 $t{dsn} = "DBI:mysql:host=localhost;database=cookbook"; $t{dbh} = DBI->connect($t{dsn}, "cbuser", "cbpass") or die "Cannot connect to server\n"; $t{dbh}->do("SET NAMES utf8"); if(!$t{dbh}){ print "SQL read ERROR!\n"; exit; } $t{DEL} = 1; $t{end} = 10000; if ( $t{DEL} == 1 ) { for $n ( 1 .. $t{end} ) { $t{NO5} = sprintf("%06d",$n); $t{table} = 'a' . $t{NO5}; # 同名テーブルが存在している場合,削除 $t{sql} = 'DROP TABLE IF EXISTS ' . $t{table} . ';'; $t{dbh}->do($t{sql}); print "The table $t{table} is deleted.\n"; } } else { for $n ( 1 .. $t{end} ) { $t{NO5} = sprintf("%06d",$n); $t{table} = 'a' . $t{NO5}; # 同名テーブルが存在している場合,削除 $t{sql} = 'DROP TABLE IF EXISTS ' . $t{table} . ';'; $t{dbh}->do($t{sql}); # テーブルを作成する $t{sql} = 'CREATE TABLE ' . $t{table}; $t{sql} .= ' ('; $t{sql} .= 'id INT AUTO_INCREMENT,'; $t{sql} .= 'time date,'; $t{sql} .= 'PRIMARY KEY (id));'; $t{dbh}->do($t{sql}); print "The table $t{table} is created.\n"; } } $t{dbh}->disconnect; __END__;
戻る