Я создаю 3 базы данных в другом месте, которые не подключены к Интернету.Добавить master-detail Данные таблицы MySQL в другую базу данных
DB А главный офис БД При
DB Б Филиал 1 База данных
DB С дочернем офис 2 База данных
Каждый вечер мне нужно скопировать данные из таблицы транзакций из B & C в A. и копирование данных на B & C на следующее утро для синхронизации данных запаса.
таблица транзакций состоит из 2 таблиц
1. капитан сделки
| ID | TRX_NUMBER | DATE | CUSTOMER_ID |
2. сделка-подробности
| ID | TRANSACTION_MASTER_ID | ITEM_ID | QTY | ЦЕНА | ИТОГИ |
транзакций details.TRANSACTION_MASTER_ID является внешним ключом к transaction-master.ID
проблемы является transaction-master.ID является автоматическое приращение значение, так как скопировать транзакций-мастер & обработки транзакций сведения данных в A без перерыва master-транзакция & информация о сделке иностранное ключевое значение?
Потому что, если в B моя таблица имеет значение 1 в качестве значения transaction-master.ID, тогда, когда я вставляю B-данные в A, возможно, что 1 уже используется и будет изменен на 2 (из-за автоматического увеличения) и вызовет внешний ключ по данным транзакции.TRANSACTION_MASTER_ID будет разорваться
Что такое наилучшая практика для решения этой проблемы?
РЕШЕНИЕ: я получил хорошее решение от канала MySQL на IRC, использование "auto_increment_offset" и "auto_increment_increment" на MySQL
Набор auto_increment_offset А: 1, B: 2 C: 3
Набор auto_increment_increment 3 на A, B, и C
Таким образом, первичный ключ никогда не будет одинаковым на каждой ветви
Ну, точка 1 совершенно верно, без автоматического приращения никаких проблем не возникает, но я уже строить свою базу данных и закончить код .. я получил другое решение, которое лучше для моего условия, это решение должно использовать «auto_increment_offset» и «auto_increment_increment» в MySQL – frozenmaiden