Zwei Tabellen synchronisieren

Alles, was MySQL betrifft, kann hier besprochen werden.

Zwei Tabellen synchronisieren

Postby philipb232 » 14. February 2009 14:09

Hi,
ich habe zwei Datenbanken (db1 & db2) in diesen befinden sich jeweils eine Tabelle (Struktur ist identisch) die ich gerne automatisch synchronisieren möchte (in Echtzeit oder jede sec).
Wie mache ich das am besten mit phpMyAdmin?

mfg
Philip
philipb232
 
Posts: 2
Joined: 14. February 2009 14:04

Re: Zwei Tabellen synchronisieren

Postby Wiedmann » 14. February 2009 15:18

ich habe zwei Datenbanken (db1 & db2) in diesen befinden sich jeweils eine Tabelle (Struktur ist identisch) die ich gerne automatisch synchronisieren möchte (in Echtzeit oder jede sec).

Liegen die DB's auf dem selben Server? Dann wäre es natürlich einfacher, wenn die Anwendungen gleich die selbe Tabelle benutzen würden. Ansonsten solltest du dich mal in das Kapitel "Trigger" im MySQL-Manual einlesen.

Wie mache ich das am besten mit phpMyAdmin?

Mit phpMyAdmin gar nicht (der läuft ja nicht ständig...).
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Zwei Tabellen synchronisieren

Postby philipb232 » 14. February 2009 15:39

Die liegen auf dem selben Server nur leider ist das von den Programmen, die die DBs nutzen, technisch nicht möglich.
philipb232
 
Posts: 2
Joined: 14. February 2009 14:04

Re: Zwei Tabellen synchronisieren

Postby Wiedmann » 14. February 2009 15:46

technisch nicht möglich.

Technisch auf jedenfall... Aber entweder fehlt dir der Quellcode der Programme, oder das Wissen diesen zu ändern.

Jedenfalls kann das wie gesagt MySQL mit einem Trigger machen. Oder du schreibst dir einen Cronjob der die Tabelle kopiert.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Zwei Tabellen synchronisieren

Postby Nobbie » 14. February 2009 20:06

Wiedmann wrote:technisch auf jedenfall


Nein, so "technisch auf jeden Fall" geht das keinesfalls. Normalerweise kann in einer Session (in einem Connect) nur eine Datenbank selektiert werden. MySQL erlaubt ausnahmsweise eine Syntax a la "SELECT Datenbank.Tabelle.Spalte", aber ANSI-konform ist das nicht und ist auch widersinng, weil man ja vorher via USE Datenbank (oder in PHP mit mysql_select_db()) eine Datenbank auswählt. Zu einem Handle gehört eine Datenbank - und nicht eine Ansammlung von Datenbanken. Man kann zwar die Datenbank wechseln, aber im Scope des Handles ist immer nur eine Datenbank geöffnet. Deswegen würde ich das auf gar keinen Fall mit einem Trigger o.ä. machen, denkbar wäre allenfalls eine Auslagerungsdatei (eine Export/Import Datei), über die die Synchronisierung abgewickelt wird. Aber das ist dann nicht ad hoc eine eins zu eins Abbildung.

Das Konzept ist im Ansatz schräg und sollte überdacht werden. Ohne weitere Kenntnisse, was Sinn der Anforderung ist, kann ich auch nicht weiterführende Hinweise geben, wie man das besser löst. Aber so wie es momentan angedacht ist, würde ich es nicht machen.
Nobbie
 
Posts: 6470
Joined: 09. March 2008 13:04

Re: Zwei Tabellen synchronisieren

Postby make-fun » 12. March 2009 13:50

Müssen db1 & db2 wirklich synchronisiert werden — gibt es also Inserts, Updates… in beiden DBs, oder ist evtl db1 -> db2 bzw. db2 -> db1 ausreichend?
make-fun
 
Posts: 31
Joined: 11. March 2009 04:21


Return to MySQL

Who is online

Users browsing this forum: No registered users and 1 guest