php - ON DUPLICATE UPDATE 不适用于某些行

标签 php mysql

我在查询中使用了 ON DUPLICATE UPDATE,一些结果没有存储它。我尝试了所有可能的方法,但那些仍然保持不变。这是数据库图片。

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

最佳答案

尝试更改要向主键插入值的列之一或向该列添加 UNIQUE 约束。

ALTER TABLE audit_section_remarkrecord ADD UNIQUE KEY (your column);

由于目前主键上只有一个唯一键,一个自动增量,您将很难在 insert on duplicate key update (IODKU) 上生成唯一键冲突。因此,需要创建其他一些唯一键(甚至是复合键),这将触发唯一键的冲突并允许 IODKU 按预期工作。

关于php - ON DUPLICATE UPDATE 不适用于某些行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33990988/

相关文章:

MySQL :Cannot create cluster Got Error:The server is not configured properly to be an active member of the group

php - 在同一文件中使用 HTML 运行 PHP 脚本

C# - 导入 CSV,其中空字符串不会通过批量导入发送到数据库

javascript - 如何使用 jQuery 在本地主机上创建文件夹并在该文件夹中将 imageData 作为图像插入?

mysql - 计算出现次数

php - 我可以将 heroku 连接到外部 MySQL 服务器吗?

php artisan 相当于生产

mysql - 使用 LIMIT x, y 进行更新

php - 确定文件是否超过 X 行?

php - 根据第一个表的内容连接表