【问题标题】:MySQL - Can 'INSERT INTO - ON DUPLICATE KEY UPDATE' cause data lossMySQL - 可以“插入 - 重复键更新”导致数据丢失
【发布时间】:2016-05-09 07:52:50
【问题描述】:

我有一个缓存脚本,它使用 PHP 从 SOAP API 请求一堆数据(每 5 分钟 Cron 作业)。此脚本请求并存储客户idname

存储 API 信息的表有 3 列:

'id' = int, Primary_key
'name' = varchar(255)
'paying' = bool

大约有 10 个(80 个)客户将 bool paying 设置为 true。但是,每隔一段时间,所有客户的 paying 列都会恢复为 0

那么...下面的查询会导致paying 列在任何情况下发生变化吗?

INSERT INTO customer(`id`, `name`) VALUES ('$escapedId','$escapedName') ON DUPLICATE KEY UPDATE `name`='$escapedName'

【问题讨论】:

  • 您的数据库中的客户表上是否有唯一索引?或任何其他索引?
  • @kejsu id 列是主键,idname 列由 API 提供。

标签: php mysql insert on-duplicate-key


【解决方案1】:

此查询无法更改“支付”字段状态。

因此,很可能原因是其他代码将值设置为 0,或者只是删除了所有记录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-24
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2018-05-16
    • 2016-08-14
    • 1970-01-01
    相关资源
    最近更新 更多