データベースが一意のタイム スタンプ (YYYYMMDD.HH:MM:SS の形式) または解析できるものを返すようにする方法が必要です。私のプログラムには、入ってきて名前が変更されるファイル名があります。ファイルに重複したタイムスタンプを取得せず、ファイルを上書きする危険性があることを確認する方法を見つけようとしています。データベースは、YYYYMMDD.HH:MM:SS 形式の時間レコードのみを追跡します。ファイルが入ってきて、データベースと一致する時間があれば、データベースが新しいタイムスタンプを返し、データベースを更新する必要があります。
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
}