【问题标题】:InnoDB update and insert data missing sometimes (PHP and MySQL)InnoDB 更新和插入数据有时会丢失(PHP 和 MySQL)
【发布时间】:2016-09-15 10:04:45
【问题描述】:

我们需要更新主表和子表(table_1 和 table_2)中的一些列,这两个表都在 InnoDB 引擎中,实际上它更新正确,但有时在任何一个表中都没有发生更新操作。

我们检查了查询执行状态并尝试检查 MySQL 负载,当时我们找不到任何解决方案,请查看并尝试为我们提供更好的解决方案,如果您需要进一步更新,请更新我们来自我们的信息。

注 1:据我们研究,InnoDB 具有行级锁定,因此它不会影响其他行插入或更新功能,您能否建议我们在什么情况下 InnoDB 无法响应或任何其他编码方面的建议或任何其他建议,等待你的答复。

注意 2:我们使用单独的连接字符串来使用 PDO 进行读写连接。

我在下面写了我的代码供你参考。

$Update_CCPI_qy = "UPDATE `table_1` SET `status` = :status, `idActivateTime` = :currentTime WHERE `student_id` = :candidateID";

$Update_CCPI_exec = $pdo_connection_write->prepare($Update_CCPI_qy);
$Update_CCPI_status = $Update_CCPI_exec->execute(array( ':candidateID' => $candidateID, ':status' => 1, ':currentTime' => time()));

$Update_candidateIDNo_qy = "UPDATE `table_2` SET `status` = :status, `idActivateTime` = :currentTime WHERE `candidateid` = :candidateID";
$Update_candidateIDNo_exec = $pdo_connection_write->prepare($Update_candidateIDNo_qy);
$Update_candidateIDNo_status = $Update_candidateIDNo_exec->execute(array( ':candidateID' => $candidateID, ':status' => 1, ':currentTime' => time()));

【问题讨论】:

  • 您查看日志文件是否有错误?为什么你有两张表的列显然完全相同??
  • 同一字段用于某些目的,这对我的项目来说是强制性的。而且我无法找到问题实际发生的时间,所以我无法在那个特定时间读取日志文件

标签: php mysql innodb


【解决方案1】:

我自己声明,经过长时间的讨论、研究和分析,我发现 innodb 在某个阶段是不一致的,该阶段恰好在该表死锁之前,因此 innodb 可以设法不陷入死锁,但在一定程度上它有时会变得不一致,这意味着它无法正确显示结果,并且当时可能无法插入或更新。 据我所知,我找到了这个解决方案,请专家查看或确认我的答案。

【讨论】:

    猜你喜欢
    • 2013-03-14
    • 1970-01-01
    • 2019-03-14
    • 1970-01-01
    • 2017-10-05
    • 2014-10-04
    • 2015-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多