【发布时间】:2010-07-27 06:16:02
【问题描述】:
我正在读取每行包含一条记录的文件。我正在提取文件的内容并将其作为列值插入到表中。我面临的问题是,假设如果我在从文件中读取后将记录插入到表中,我想删除重复的字段。例如:
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 不包含重复项。
【问题讨论】:
-
请在您描述的每种情况下包括您用于写入数据库的代码。
-
for my $test11(sort keys %seen){ my $test1 = $seen{$test11}{'name'};我的 $test2 = $seen{$test11}{'pid'};我的 $test3 = $seen{$test11}{'type'};我的 $test4 = $seen{$test11}{'time1'};打印 "$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