2012-10-17 37 views
-2

我需要一種方法讓數據庫返回唯一的時間戳(格式爲YYYYMMDD.HH:MM:SS)或我可以解析的東西。我的程序有文件名進來並被重新命名,我試圖找到一種方法來確保我在文件上沒有重複的時間戳,並有覆蓋文件的風險。數據庫將只記錄YYYYMMDD.HH:MM:SS格式的時間記錄。如果文件進入並且有一個匹配數據庫的時間,我需要數據庫返回一個新的時間戳並更新數據庫。Perl DBI:返回唯一時間戳

if($fileName =~ m/^[a-z0-9]{3}[0-9]{5}\.[0-9]{5}\.([0-9]{8}\.[0-9]{2}:[0-9]{2}:[0-9]{2})\.(.)*/) 
{ 
    $dttmstmp = $1; 
} 
else 
{ 
    $current_time = Date->getDateTime(); 
    $dttmstmp = $current_time; 
} 

    my $databaseHandle = getDbConnection(); 
    my $tstamp_present = getDbTime ($databaseHandle , $dttmstmp); 

    if ($tstamp_present == 1) 
    { 
      sleep(1); # sleep to change timestamp 
      $dttmstmp = Date->getDateTime(); # Get new timestamp 
      updateTimestamp ($databaseHandle , $dttmstmp); # Update database with new timestamp 
    } 
    else 
    { 
      updateTimestamp ($databaseHandle , $dttmstmp); # Update database with new timestamp 
    } 
+1

問題是什麼? – Mark

回答

4

使用數據庫生成唯一值聽起來不是件好事。更好的方法是使用UUID。 CPAN上有幾個模塊可用於此目的,例如, Data::UUID