我正在使用下面的函數來創建一個以字母爲前綴的唯一字段。 如果它用於與許多用戶進行交易,會造成任何問題嗎? 這種情況是,這個函數在一個循環內被調用,並且如果有許多用戶同時使用這個系統。這是否會導致任何錯誤?有沒有更好的方法來做到這一點?我使用GLAccountID作爲其他表的外鍵。mysql字段中的問題值前綴
function getID(){
global $db;
$max_gl = $db->get_var("SELECT MAX(GLAccountNumber) FROM sys_glaccount");
if($max_gl == null){
$max_gl = 1;
}else if($max_gl > 0){
$max_gl = $max_gl + 1;
}
return 'GLA'.$max_gl;
}
該表看起來像這樣,GLAccountNumber是主鍵,我將其設置爲自動增量。
這是如何危險? – 2011-12-18 12:54:45
如果你這樣做,而另一個用戶同時做同樣的事情,你會得到2個相同的accountID,但有一個accountnumber不同。如果你鎖定桌子,東西變慢。 – Nanne 2011-12-18 12:59:45