我正在讀取每行包含一條記錄的文件。我正在提取文件的內容並將其作爲列值插入到表中。我面對的問題是,假設如果我從文件讀取後向表中插入記錄,我想刪除重複的字段。例如:如何在使用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