防止向MYSQL插入相同数据的Perl
我有一个散列数组,我对它进行差分,并将其相应地插入到一个表位置,以便它适合列名。代码如下:防止向MYSQL插入相同数据的Perl,mysql,perl,Mysql,Perl,我有一个散列数组,我对它进行差分,并将其相应地插入到一个表位置,以便它适合列名。代码如下: my $dsn = "DBI:mysql:saferoute"; my $username = "root"; my $password = "password"; my %attr = (PrintError=>0,RaiseError=>1); my $dbh = DBI->connect($dsn,$username,$password,\%attr); while (my (
my $dsn = "DBI:mysql:saferoute";
my $username = "root";
my $password = "password";
my %attr = (PrintError=>0,RaiseError=>1);
my $dbh = DBI->connect($dsn,$username,$password,\%attr);
while (my ($year, $year_ref) = each(%$stat) ){
while (my ($state, $state_ref) = each(%$year_ref) ){
while (my ($city, $city_ref) = each(%$state_ref) ){
foreach my $crime_ref (@$city_ref){
while (my ($crime, $crime_stat) = each (%$crime_ref) ){
my $sql = qq|INSERT INTO LOCATION (COUNTRY, STATE, DISTRICT, CITY, LOCALITY_NAME, PIN_CODE, SAFETY_RANKING) VALUES ('IN', '$state', '$city', '$city', 'city', '11111', 1)|;
my $stmt = $dbh->do($sql);
}
}
}
}
}
$dbh->disconnect();
代码运行良好,并相应地插入数据。但每当我运行上面的脚本时,它就会填充数据。例如,我第一次运行它时,它会创建1000行,下次它会创建2000行,以此类推。关于如何防止在单个行中插入相同类型的数据的任何建议。多谢各位