我有输入数据的mysql代码:
$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如何防止只在Model,Serial_number,Line处重复?
答案 0 :(得分:2)
来自文档
如果使用IGNORE关键字,则会出错 执行INSERT时发生的情况 声明被视为警告 代替。 例如,没有 IGNORE,一行重复一个 现有的UNIQUE索引或PRIMARY KEY 表中的值导致a 重复键错误和语句 被中止了。随着IGNORE,行仍然 未插入,但没有错误 发出的。强>
因此,它告诉我Model,Serial_number,Line
必须是主键,或者您需要在这些列上创建唯一索引。