我正在读取每行包含一条记录的文件。我正在提取文件的内容并将其作为列值插入到表中。我面对的问题是,假设如果我从文件读取后向表中插入记录,我想删除重复的字段。例如:如何在使用Perl插入表之前检查表中的重复列值?
NAME age time
Tom 21 10:30
Tom 21 12:21
插入我想要的表格后,它是:
NAME AGE TIME
tom 21 10:30
12:21
应该消除重复。如果我在创建表时添加一个唯一条件,那么我会面临一个问题,即明显的时间字段未被插入,并导致MySQL中出现错误。
那么我该如何做到这一点?我想要一些建议。
for my $test11 (sort keys %seen) {
my $test1 = $seen{$test11}{'name'};
my $test2 = $seen{$test11}{'pid'};
my $test3 = $seen{$test11}{'type'};
my $test4 = $seen{$test11}{'time1'};
print "$test11\t$test1$test2$test3$test4\n";
}
#sub query_execute()
{
$db_handle = &getdb_handle;
$sth = $dbh->prepare("INSERT INTO tahle_new values('$sno','$id','$test1','$test4','$test2','$test3')");
$test1
和$test2
包含重复,但不是$test3
。
请包括您在描述的每种情况下用于写入数据库的代码。 – Ether 2010-07-27 06:42:11
另请参阅上一个问题http:// stackoverflow。COM /问题/ 3334644 /怎么办,我到保持最值一列器唯一在MySQL的 - 的 - – daxim 2010-07-27 06:44:16
我$ TEST11(排序键%可见){ 我的$测试1 = $见过{$ TEST11} { '名'}; my $ test2 = $ seen {$ test11} {'pid'}; my $ test3 = $ see {$ test11} {'type'}; my $ test4 = $ seen {$ test11} {'time1'}; print“$ test11 \ t $ test1 $ test2 $ test3 $ test4 \ n”; } #sub query_execute() { $ db_handle =&getdb_handle; $某物= $ dbh->制备( “INSERT INTO tahle_new值( '$ SNO', '$ ID', '$ TEST1', '$ TEST4', '$ TEST2', '$ TEST3')”); – Sreeja 2010-07-27 06:49:47