2017-07-04 4 views
0

2人または3人のユーザーがDBに重複したIDを同時に要求したときに最後のIDを取得し、 。私はそれいくつかの時間、それは複製DBに格納したときに今ここCODE2人または3人のユーザーが同じ時刻を要求した場合、私はIDが重複しています

$id_num = DB::table('slips')->latest('id')->first(); 
$now = \jDate::forge('now')->format('date'); 
$old = $id_num->date; 
$slep_id = 0; 

if($now>$old){ 
    $slep_id = 1; 
} 
else{ 
    $slep_id = $id_num->id_num+1; 
} 
$formatted_slep = sprintf("%04d",$slep_id); 

IS

$slip = new Slip; 
$slip->id = $formatted_slep; 
$slip->save(); 
+0

シンプル親愛なるだけsesseionにrand関数とassigneを使用 –

+0

mysqlは、insert-queryで割り当てられた自動インクリメントIDを返すことができます。自分で計算してはいけません –

答えて

0

使用トランザクション:

DB::transaction(function() { 
    $slip = new Slip; 
    $slip->id = $formatted_slep; 
    $slip->save(); 
}); 
関連する問題