我有一個Mysql表,其中pincode字段不能每天重複(Sequential increment id),我也無法應用該字段使用Mysql索引出於某種原因的唯一鍵。PHP - 如何進行插入,直到沒有重複的字段值存在?
使用PHP我嘗試如下,但我的代碼將變得無止境,如果我不得不通過檢查他們繼續增加如下。
沒有任何更好的方式沒有Mysql索引從PHP(zend框架)做到這一點?
$sql = "SELECT count(*) as total
FROM `sh_av_spform`
WHERE DATE(`createdate`) = CURDATE()";
$result = $db->fetchAll($sql);
if(count($result)>0) {
$tmp_id = $result[0]['total'] +1;
$new_id = sprintf('%03d',$tmp_id); // 009
try{
$sql1 = "SELECT id,pincode
FROM `sh_av_spform`
WHERE DATE(`createdate`) = CURDATE() and pincode='$new_id' limit 1";
$result1 = $db->fetchAll($sql1);
if(count($result1)>0) {
// 009 already exist make it 010?
$tmp_id = $result[0]['total'] +2;
$new_id = sprintf('%03d', $tmp_id); // 010
}
// Ooopsssss! 010 also exist. now what?
// keep wrting code forever? or there is better way?
$db->insert('sh_av_spform', array('pincode'=>$new_id));// Pincode cant be duplicated
如何在重複密鑰更新上插入 – Drew