Привет, у меня есть 2 таблицы mysql, и они обе нуждаются в обновлении,
companies
unique_code
В компаниях хранится 1 миллион записей, и мне нужен уникальный код для каждой из них, проблема в том, что мой PHP-скрипт захватывает все компании и в цикле foreach получает уникальный код из таблицы unique_code и обновлений, а затем обновляет unique_code таблица для обозначения кода была использована.
PHP-код просто зависает целую вечность и достигает максимального предела исполнения. Я действительно застрял и нуждаюсь в этих компаниях, чтобы иметь уникальный код, может кто-нибудь придумать другой подход?
Пример упрощенного кода.
foreach ($aCompanies as $companies){
$query="SELECT * FROM unique_code WHERE used = 0"
foreach(unique_code as code){
// UPdate companies table
$query = "UPDATE companies SET id = $code";
// Flag code used
$query = "UPDATE unique_codes WHERE code = $code";
}
}
Приветствия за ваше время.
Полный код:
$query1 = "SELECT code FROM unique_codes WHERE used = 0\n";
$aUniqueCode = $oDbh->getAll($query1);
$query2 = "SELECT id FROM companies";
$aCompanies = $oDbh->getAll($query2);
foreach ($aCompanies as $companies){
$query = "SELECT code FROM unique_codes WHERE used = '0' LIMIT 1";
$oCode = $oDbh->getRow($query);
$query3.= "UPDATE companies SET code = $oCode->code WHERE id = $companies->id\n";
$query4 = "UPDATE unique_codes SET used = '1' WHERE code = $oCode->code\n";
$oDbh->query($query4);
}
print print_r($query3).';';
exit;
То, что я делаю, не обновляет компании, я экспортирую все SQL в файл, чтобы я мог импортировать его позже.