2015-11-30 22 views
5

我在我的查詢中使用了重複更新,其中一些結果沒有存儲它。我嘗試了所有可能的方式,但仍然保持不變。這裏是數據庫圖片。重複更新不適用於某些行

enter image description here

那些NULL,是沒有成功存儲行;結果應該是1而不是NULL。

if($remark){ 
$query3 = "INSERT INTO `audit_section_remarkrecord` SET remark = '$remark', form_details_subquestion_id = '$form_details_subquestion_id', form_details_section_id = '$form_details_section_id', audit_section_no = '$audit_no' ON DUPLICATE KEY UPDATE 
form_details_section_id = '$form_details_section_id' , remark = '$remark'"; 
$result3 = $db->query($query3); 

$query4 = "UPDATE `remarkrecord_update_details` SET form_details_section_id = '$form_details_section_id', userlog = '$user_staff', ipaddress = '$ip' WHERE form_details_subquestion_id = '$form_details_subquestion_id' AND audit_section_no = '$audit_no' "; 
$result4 = $db->query($query4); 
}else{ 
} 

} 

表結構

enter image description here

+0

你可以提供一些值的工作參數,有些不工作。看到這些值的抽樣會很有幫助。 –

+0

@devlincarnate嗨兄弟,你能讓我知道任何我可以告訴你嗎?我不明白什麼值的參數你的意思:) – Andrew

+0

後變量值,也不工作也發佈表結構 – rocky

回答

2

試着改變你的列要插入值主鍵的一個或UNIQUE約束添加到列。

ALTER TABLE audit_section_remarkrecord ADD UNIQUE KEY (your column); 

由於目前只有主鍵,自動遞增唯一鍵,你將很難產生上insert on duplicate key update (IODKU).因此,要創造一些其他獨特的按鍵需要一個唯一的密鑰衝突(即使是複合材料),也會觸發唯一鍵的衝突,並允許IODKU按預期工作。

+0

的結構,正如我已經做到這一點之前的時間。 – Andrew

+0

ALTER TABLE audit_section_remarkrecord ADD UNIQUE(form_details_subquestion_id,audit_section_no); – Andrew

+2

如果您正在使用ALTER TABLE audit_section_remarkrecord ADD UNIQUE(id); ,那麼你的查詢應該是INSERT INTO table_name SET id =「$ id」,... ON DUPLICATE .. – Abhijith