2011-10-24 4 views
1

J'utilise 3 bases de données MySQL simultanément. J'ai besoin d'insérer 3 lignes dans 3 bases de données différentes.Une transaction, trois bases de données distinctes

Est-il possible d'utiliser une transaction pour accomplir ceci? Sinon, quelle serait une méthode alternative?

+2

Vous poursuivez MySQL? Il h. – ceejayoz

+0

ouais j'utilise mysql – Elbek

Répondre

2

Les bases de données sont séparées. Vous ne pouvez pas utiliser une transaction entre eux ... c'est impossible.

Tout ce que vous pouvez faire est d'effectuer 3 INSERT séparés. Maintenant, je suppose que vous pourriez commencer une transaction sur chacun, insérez 3 lignes, puis terminez la transaction sur chacune d'entre elles, mais cela pourrait ne pas atteindre votre objectif ultime, selon ce que vous voulez.


Edit: je me corriger. Voir les informations ici: http://dev.mysql.com/doc/refman/5.1/en/xa.html

+0

Je ne crois pas que ce soit vrai, avez-vous une citation pour cela? – Johan

+0

@Johan, peut-être vous pouvez donner un exemple. – Brad

0

PHP ne fournit rien que je sache à travers la gestion des transactions distribuées. Vous devrez gérer ceci manuellement ... c'est-à-dire si l'une des insertions échoue, vous aurez besoin de revenir dans les autres dbs.

Si vous n'êtes pas lié à l'utilisation de php, Java EE en prend en charge. JTA

Questions connexes