Одна транзакция, три отдельные базы данных - PullRequest
1 голос
/ 24 октября 2011

Я использую 3 базы данных MySQL одновременно.Мне нужно вставить 3 строки в 3 разные базы данных.

Можно ли использовать одну транзакцию для достижения этой цели?Если нет, то какой будет альтернативный метод?

Ответы [ 2 ]

2 голосов
/ 24 октября 2011

Базы данных являются отдельными.Вы не можете использовать транзакцию через них ... это невозможно.

Все, что вы можете сделать, это выполнить 3 отдельных ВСТАВКИ.

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


Редактировать: Я могу быть исправлен.Смотрите информацию здесь: http://dev.mysql.com/doc/refman/5.1/en/xa.html

0 голосов
/ 24 октября 2011

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

Если вы не привязаны к использованию php, Java EE поддерживает это. JTA

...