现在正在发生一些非常奇怪的事情,我不明白如何解决它......好吧,暂时我做了,但我找到的解决方案并不是程序应该如何表现......
所以我有这个employeetimesheets表:
empsheet_id | employee_id |timesheet_status |last_update |isWeekNumber|total_hours|isMonth|isYear|overtimeHours
变量:
$isWeekNumber = $_POST['isWeekNumber'];
$attendanceyear= $_POST['attendanceyear'];
$attendancemonth= $_POST['attendancemonth'];
$employee_id= $_POST['employee_id'];
查询:
$insertemptime= $db->prepare("INSERT INTO employeetimesheets (employee_id,isWeekNumber,isMonth,isYear) VALUES (?,?,?,?)");
$insertemptime->bind_param("iiss",$employee_id,$isWeekNumber,$attendancemonth,$attendanceyear);
$insertemptime->execute() or die(mysqli_error($db));
$insertemptime->close();
在插入新行时,如果已有一行具有相同的employee_id
致命错误:未捕获的异常' mysqli_sql_exception'与消息 '重复输入' 6748372'关键字' EmployeeTimeSheetsKey''
如果我删除{I}尝试插入的employee_id
行,则查询有效。我感到困惑,因为它是一个插入语句...我应该能够使用相同的employee_id
添加我想要的任意数量的行,是吗?任何人都知道发生了什么?
答案 0 :(得分:3)
您已将字段employee_id设置为唯一而非索引
从字段中删除唯一索引并再次添加索引而不使用唯一
示例sql代码
检查索引
SHOW INDEX FROM employeetimesheets;
删除索引
ALTER TABLE employeetimesheets DROP INDEX employee_id;
添加索引
CREATE INDEX employeetimesheets ON employee_id;