Mysql - Синхронизиране на 2 таблици от различни бази данни, PHPClub - PHP Developers Club
Здравейте всички. Има 2 бази данни. Единият е MySQL, другият е базиран на MS SQL MS SQL има съхранена процедура, която връща съдържанието на определена таблица. В MySQL има подобна таблица със същите полета. Задачата е да актуализирате всички редове в MySQL таблица, ако се различават от редовете в MS SQL таблица.
Засега само една част от задачата представлява интерес, а именно как да намерите редовете, които трябва да бъдат актуализирани. Броят на записите във всяка таблица е около 300 хиляди, тествам върху тестова база данни с брой записи от 30 хил. Всяка таблица има уникално поле, по което могат да се сравняват записите Работя чрез PDO.
Първото нещо, което идва на ум, е да получите таблици от двете бази данни с помощта на fetchAll в масиви и след това да сравните тези масиви. След сравнението ще имаме масив от ключове на редове (индекси) от изходната таблица (MS SQL), които са различни от втората таблица.
при стартиране след няколко минути получавам грешка: Uncaught exception 'PDOException' със съобщение 'SQLSTATE[HY000]: General error: 2006 MySQL server has gone away' в.
Грешката възниква поради тази конструкция:
ще работи без грешки.
Това, което ме обърква най-много е, че има грешка в MySQL След гугъл намерих съвети за увеличаване на max_allowed_packet в настройките на mysql.
Следователно 2 въпроса: 1. как работи fetchAll в PDO? Вярвах, че всички записи се избират и съхраняват в масив. Тогава можете да работите с масива и няма да има извиквания към базата данни. Но веднага щом направя търсене в масив, изскача грешка в MySQL
2. Дали като цяло съм избрал правилния начин, избирайки първо ВСИЧКИ записи в масив?
Може би някой вече е решил подобен проблем, отговорете