Sugarcrm копирует таблицу в другую таблицу базы данных партиями (cronjob) - PullRequest
0 голосов
/ 24 ноября 2011

У меня есть некоторые проблемы с sugarcrm.Поскольку вы знаете, что таблица sugarcrm, у них есть ID (который является уникальной строкой), они не выполняются последовательно.например,

4bab37e4-798a-e01c-75de-4e4397f358b7

Например, я хотел бы скопировать таблицу sugarcrm.accounts в something.accounts, в something.accountsЯ добавил в него какой-то специальный файл для другого использования в PHP-процессе.

Теперь проблема в том, что моя таблица sugarcrm содержит огромные записи, я планирую запускать ее пакетно-пакетно, каждый раз, когда я хочу скопировать 10000 записей.на мой somthing.accounts.

Однако, sugarcrm.accounts, их идентификатор, не в последовательном порядке, как узнать параметр смещения?

Я не хочу вносить изменения в таблицу sugarcrm / или добавлятьвременная таблица в sugarcrm.(например, sugarcrm.account_index), это может вызвать проблемы с обновлением.

Итак, у кого-нибудь есть идеи, как мне получить индекс?Есть ли у MySQL скрытый индекс?

Или у кого-нибудь есть идея сделать копию таблицы базы данных другой таблицы базы данных?

1 Ответ

1 голос
/ 24 ноября 2011

Один из способов заключается в следующем: - Выберите все строки из sugarcrm.accounts и упорядочите по дате_созданию по возрастанию. - Используйте предел, чтобы выбрать только подмножество строк (сохранить смещение от партии к партии) - Скопируйте подмножество строк в something.accounts

Если новые записи будут добавлены позже, они все равно будут скопированы, поскольку они будут последними в наборе. Однако, если вы удаляете записи в sugarcrm.accounts во время выполнения пакетных заданий, вам также необходимо изменить смещение, поскольку некоторые строки можно опустить.

Другой способ, если две базы данных / таблицы находятся в одном и том же экземпляре MySQL, это объединить две таблицы и выбрать следующие 10.000, которых нет в something.accounts.

...