取出數(shù)據(jù)庫舊表數(shù)據(jù),然后生成新表程序
戻る
#!C:/perl/bin/perl
# change_main_type1.pl 07.12.10
use strict;
use DBI;
my (%t,@rec);
$t{dsn} = "DBI:mysql:host=localhost;database=cookbook";
$t{dbh} = DBI->connect($t{dsn}, "cbuser", "cbpass") or die "Cannot connect to server\n";
if(!$t{dbh}){
print "SQL read ERROR!\n";
exit;
}
open(OUT,">main_type1_tmp.txt");
$t{sth} = $t{dbh}->prepare("select * from main_type1");
$t{sth}->execute;
while (@rec = $t{sth}->fetchrow_array) {
$t{line} = join("==>",@rec);
print OUT $t{line},"\n";
}
$t{sth}->finish;
$t{dbh}->disconnect;
close(OUT);
print "The output file is main_type1_tmp.txt.\n";
__END__
--------------------------------------------------------------
#!C:/perl/bin/perl
# change_main_type2.pl 07.12.10
use strict;
my (%t,@fld,$n);
# データを読む
open(IN,"main_type1_tmp.txt");
while(){
chop;
@fld = split(/==>/);
next unless $fld[1];
push(@{ $t{name} },$fld[1]);
}
close(IN);
# テーブルを生成
open(OUT,">../sql/main_type1.sql");
print OUT 'DROP TABLE IF EXISTS main_type1;',"\n";
print OUT 'CREATE TABLE main_type1',"\n";
print OUT '(',"\n";
print OUT ' id INT AUTO_INCREMENT,',"\n";
print OUT ' name VARCHAR(50),',"\n";
print OUT ' series VARCHAR(50),',"\n";
print OUT ' DWG VARCHAR(50),',"\n";
print OUT ' memo VARCHAR(200),',"\n";
print OUT ' PRIMARY KEY (id)',"\n";
print OUT ');',"\n\n";
# データを挿入
for $n ( 0 .. $#{ $t{name} } ) {
print OUT 'INSERT INTO main_type1 (name) VALUES("';
print OUT $t{name}[$n],'");',"\n";
}
close(OUT);
print "The output table is main_type1.sql.\n";
__END__
--------------------------------------------------------------
# make_ptables.pl
# パーツテーブルの生成
use strict;
use DBI;
my(%t,$n,@fld);
print "This is make_ptables.pl.\n";
# テーブルの名前を生成する
open(IN,"main_type1_tmp.txt") or die "Can't open the file main_type1_tmp.txt.\n";
while(){
chop;
@fld = split(/==>/);
next unless $fld[1];
$t{NO5} = sprintf("%06d",$fld[0]);
push(@{ $t{ID} },$t{NO5});
}
close(IN);
# データベースに連結(jié)
$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;
}
for $n ( 0 .. $#{ $t{ID} } ) {
#for $n ( 0 .. 0 ) {
$t{NO5} = $t{ID}[$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} .= 'name VARCHAR(50),';
$t{sql} .= 'code VARCHAR(50),';
$t{sql} .= 'engine INT,';
$t{sql} .= 'price VARCHAR(50),';
$t{sql} .= 'money INT,';
$t{sql} .= 'memo TEXT,';
$t{sql} .= 'PRIMARY KEY (id));';
$t{dbh}->do($t{sql});
print "The table $t{table} is created.\n";
}
$t{dbh}->disconnect;
__END__;
--------------------------------------------------------------
#!C:/perl/bin/perl
# change_main_type1.pl 07.12.10,16
use strict;
use DBI;
use utf8;
my (%t,@rec);
$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;
}
open(OUT,">main_type1_tmp.txt");
$t{sth} = $t{dbh}->prepare("select * from main_type1");
$t{sth}->execute;
while (@rec = $t{sth}->fetchrow_array) {
$t{line} = join("==>",@rec);
print OUT $t{line},"\n";
}
$t{sth}->finish;
$t{dbh}->disconnect;
close(OUT);
print "The output file is main_type1_tmp.txt.\n";
__END__
--------------------------------------------------------------
#!C:/perl/bin/perl
# change_main_type2.pl 07.12.10,16
use strict;
my (%t,@fld,$n);
# データを読む
open(IN,"main_type1_tmp.txt");
while(){
chop;
@fld = split(/==>/);
next unless $fld[0];
push(@{ $t{name} },$fld[1]);
}
close(IN);
# テーブルを生成
open(OUT,">../sql/main_type1.sql");
print OUT 'DROP TABLE IF EXISTS main_type1;',"\n";
print OUT 'CREATE TABLE main_type1',"\n";
print OUT '(',"\n";
print OUT ' id INT AUTO_INCREMENT,',"\n";
print OUT ' name VARCHAR(50),',"\n";
print OUT ' series VARCHAR(50),',"\n";
print OUT ' GR TEXT,',"\n";
print OUT ' DWG TEXT,',"\n";
print OUT ' memo VARCHAR(200),',"\n";
print OUT ' PRIMARY KEY (id)',"\n";
print OUT ');',"\n\n";
# データを挿入
for $n ( 0 .. $#{ $t{name} } ) {
print OUT 'INSERT INTO main_type1 (name) VALUES("';
print OUT $t{name}[$n],'");',"\n";
}
close(OUT);
print "The output table is main_type1.sql.\n";
__END__
--------------------------------------------------------------
戻る
凭祥市|
邢台县|
双城市|
宜阳县|
那坡县|
彰化县|
玉林市|
澳门|
衡阳市|
宣汉县|
沈阳市|
崇礼县|
晋宁县|
阿拉善盟|
吴堡县|
苏尼特右旗|
绥阳县|
荥阳市|
伊吾县|
本溪市|
四川省|
襄汾县|
台前县|
江北区|
禄丰县|
大石桥市|
安多县|
体育|
晋州市|
苏尼特右旗|
义马市|
施秉县|
会东县|
天等县|
马鞍山市|
陆河县|
海南省|
托里县|
台北市|
比如县|
石门县|