2010-08-11 51 views
2

我對輸入數據MySQL代碼:如何使用IGNORE?

$sql = "INSERT IGNORE INTO inspection_report "; 
    $sql.= "(Model,  Serial_number,  Line,  Shift,  Inspection_datetime,   Range_sampling,  Packing, "; 
    $sql.= "Accesories,  Appearance,  Tuner,  General_operation,  Class,  Status,   Remark, "; 
    $sql.= "NIK) "; 
    $sql.= "VALUES ('"; 
    $sql.= $Model."','".$Serial_number."', '".$Line."','".$Shift."','".postVar('insp_date')." ".postVar('time')."','".$Range_sampling."','".$Packing."','"; 
    $sql.= $Accesories."','".$Appearance."','".$Tuner."','".$General_operation."','".$Class."','".$Status."','".$Remark."','"; 
    $sql.= $NIK."')"; 

我想用IGNORE.but如何防止重複僅在型號,序列號,行?

回答

2

從文檔

INSERT

如果使用忽略關鍵字,在執行INSERT語句 發生的錯誤 被視爲警告 代替。 例如,如果沒有 IGNORE,表中現有唯一索引或主鍵 值重複的行會導致 重複鍵錯誤,並且語句 被中止。使用IGNORE時,仍未插入行 ,但未發出錯誤 。

所以,告訴我,要麼Model,Serial_number,Line必須是主鍵,或者您需要在這些列創建一個唯一索引。

+0

我應該改變模型,序列號,行成爲唯一索引? – klox 2010-08-11 04:51:35

+1

如果Model,Serial_Number,Line還不是您的表主鍵,那麼您需要爲這些列創建唯一索引。 – 2010-08-11 04:55:16