我必须比较CSV文件中的数据库。 数据库由我制作的脚本填充相同的CSV。
案例是偶尔会在CSV文件中添加或删除行,并且脚本必须再次运行。 发生这种情况时,必须检查它们与数据库相比是否有任何变化。
我希望你们能提供帮助。
我尝试了什么。
#!/usr/bin/perl -w
use DBI;
$dbh = DBI->connect('dbi:mysql:perltest','root','password')
or die "Connection Error: $DBI::errstr\n";
$sql = "select * from samples";
$sth = $dbh->prepare($sql);
$sth->execute
or die "SQL Error: $DBI::errstr\n";
while (@row = $sth->fetchrow_array) {
$I1 = @row[1];
}
$CSVSep=",";#separator in csv file
$dbh=DBI->connect(qq{DBI:CSV:csv_sep_char=$CSVSep});#create connection to csv file
$dbh->{'csv_tables'}->{'test'}={'file'=>$TMP_Path,'eol' => "\n"};#Connect the file
my$csv=$dbh->prepare(" SELECT * FROM test");# Get all rows in the csv file
$csv->execute();
while(my @UploadFileLineSplit = $csv->fetchrow_array){
$I2 = @UploadfileLineSplit[1];
}
if ($I1 == $I2){
print "Their Both the Same";
}
else{
print "Their Both Different!";
}
答案 0 :(得分:0)
您必须依赖行键并提取其中的两组(其中A
是CSV文件中的键,而B
来自mysql表)
keys from CSV
除了keys from mysql
keys from mysql
除了keys from CSV
然后第一组应该插入到mysql中,第二组删除。