Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
[MySQL 4.0] Zusammenfassen von Tabellenwerten verschiedener Datenbanken [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
[MySQL 4.0] Zusammenfassen von Tabellenwerten verschiedener Datenbanken


 
ssatorius
29-05-2006, 19:23 
 
Hallo,

folgendes Problem:

es existieren verschiedene Datenbanken von Vereinen, die nach Zuständigkeiten getrennt sind. Alle Datenbanken sind identisch ausgeprägt und unterscheiden sich nur in den enthaltenen Daten.

Es soll nun eine Datenbank erstellt werden, in der die Mitgliedertabelle jeder Datenbank in einer Tabelle zusammengefasst werden.

Dabei wäre es einfach, die Daten per INSERT INTO...SELECT FROM... zu übertragen.

Problematisch ist es nun aber sich parallel an verschiedenen Datenbanken anzumelden, um datenbank-übergreifend die Daten zusammenzuführen.

Hat vielleicht jemand eine Idee, wie sich dieses Problem lösen lässt?

Wären die Datenbanken nicht bei einem Webhoster so könnte man über einen Export in ein File und einen anschliessenden Import die Zusammenführung bewerkstelligen.
So ist jedoch auch dieser Weg nicht gangbar.

Die Umgebung:

- Ein Webspace mit verschiedenen Datenbanken
- Kein Shellzugriff möglich
- Zugang zu allen Datenbanken möglich
- Zugang per FTP voll möglich

Anforderung:

Automatische Aktualisierung bzw. Erneuerung des Datenbestands ist nicht notwendig.
Bei Zugriff auf die zusammengeführten Daten kann die Aktualisierung auch manuell angestossen werden, da nur wenige und seltene Zugriffe auf die zusammengeführten Daten erfolgen sollen.

Ist es möglich einen Cron-gesteuertes Script dazu zu verwenden ein Export der Datenbanken in ein File vorzunehmen um dieses dann per Import oder automatisiert per PHPMyAdmin in die zentrale Datenbank zu übernehmen?

Über einen Rat würde ich mich sehr freuen.

S.Satorius

 
mrhappiness
29-05-2006, 23:03 
 
Du solltest überall statt dem Tabellennamen allein mit datenbank.tabelle arbeiten können

INSERT INTO neue_db.neue_tabelle SELECT 'verein_1' verein_id, * FROM verein1_db.tabelle

INSERT INTO neue_db.neue_tabelle SELECT 'verein_2' verein_id, * FROM verein2_db.tabelle

...


Du sparst dir damit auch dein mysql_select_db ;)

 
ssatorius
29-05-2006, 23:30 
 
Manchmal ist es doch so einfach.

Vielen Dank, das war genial! Man weiss es, und wenn es darauf ankommt...

Du hast mir Stunden an Arbeit erspart, vielen Dank!!!


S.Satorius

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:57 Uhr.