2016-09-15 6 views
1

Нам нужно обновить некоторые столбцы как в основной, так и в подкатегории (table_1 и table_2), обе таблицы находятся в движке InnoDB, на самом деле они обновляются корректно, но иногда в любом в одной таблице действия обновления не происходит.InnoDB обновляет и вставляет данные, иногда отсутствующие (PHP и MySQL)

Мы проверили статус выполнения запроса и попытались проверить загрузку 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())); 
+0

Вы просмотрели файл журнала для получения ошибок? Почему у вас есть две таблицы с явно одинаковыми столбцами? – e4c5

+0

Это же поле используется для некоторых целей, которое является обязательным для моего проекта. И я не могу найти время. Когда проблема действительно произошла, поэтому я не могу прочитать файл журнала в это конкретное время – Naveen

ответ

0

я сам заявляю, что после долгого обсуждения, исследования и анализа, где-то я обнаружил, что InnoDB не согласуется на каком-то этапе, который приходит как раз перед мертвой блокировкой этой таблицы так InnoDB может управлять не попасть в мертвый замок, но на определенном уровне он становится непоследовательным порой, что означает, что он не показывает результаты правильно и не может вставлять или обновлять в это время. Насколько я знаю, я нашел это решение, эксперты, пожалуйста, просмотрите или подтвердите свой ответ.

Смежные вопросы