php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.07.2009, 17:04  
Neuer Benutzer
 
Registriert seit: 09.06.2009
Beiträge: 19
PHP-Kenntnisse:
Fortgeschritten
M*I*B befindet sich auf einem aufstrebenden Ast
Standard Hilfe: datenbank mappen und kopieren

Hallo liebe Leser/innen,

ich hätte da mal wieder ein Problem

Beschreibung:
Ich habe zwei Datenbanken, nennen wir sie NEU und ALT.
Die Datenbank NEU besteht nur aus leeren Tabellen und Spalten, ist also jungfräulich, die Datenbank ALT ist gefüllt und entspricht fast vollständig der Struktur der Datenbank NEU.

Aber...
Die Datenbank ALT enthält ein paar Tabellen mehr und/oder in Tabellen eine oder mehrere Spalten, die in der Datenbank NEU nicht existieren.

Aufgabe:
Ich möchte alle Daten aus Datenbank ALT in die Datenbank NEU kopieren, aber nur die Daten aus den Tabellen resp. Spalten, die auch in der Datenbank NEU vorliegen. Alles, was in NEU nicht vor kommt, soll entsorgt werden.

Ich habe jetzt schon mit dem MySQL Migration Toolkit rumgedamelt und noch mit ein paar anderen Tools, aber ohne Erfolg.

ich kann mir nicht vorstellen, das noch nie jemand vor selbigem Problem stand und das es kein Tool dafür gibt... nur wo
Wäre echt toll, wenn mir da mal wer aus der Patsche helfen könnte...
__________________
... und immer logger bleiben ...
Micha
M*I*B ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 13.07.2009, 17:05  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

über wieviele Tablellen reden wir? Normal kriegst Du sowas auch fix über ein paar SQL Befehle hin.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 13.07.2009, 17:09  
Neuer Benutzer
 
Registriert seit: 09.06.2009
Beiträge: 19
PHP-Kenntnisse:
Fortgeschritten
M*I*B befindet sich auf einem aufstrebenden Ast
Standard

... hmm, so ca. 100 Tabellen mit teilweise über 50 Spalten ...
__________________
... und immer logger bleiben ...
Micha
M*I*B ist offline   Mit Zitat antworten
Alt 13.07.2009, 17:54  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Autsch. Ja das ist schon was.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 13.07.2009, 18:46  
Neuer Benutzer
 
Registriert seit: 09.06.2009
Beiträge: 19
PHP-Kenntnisse:
Fortgeschritten
M*I*B befindet sich auf einem aufstrebenden Ast
Standard

... ebend, nich nackend
... sonst hätte ich auch den zu Fuß Weg eingeschlagen, aBär das is mir'n bisschen viel ...
__________________
... und immer logger bleiben ...
Micha
M*I*B ist offline   Mit Zitat antworten
Alt 13.07.2009, 19:24  
erc
Erfahrener Benutzer
 
Registriert seit: 02.01.2009
Beiträge: 730
PHP-Kenntnisse:
Fortgeschritten
erc wird schon bald berühmt werden
Standard

Wo sind wir den hier? Das sind ~10 Zeilen Code und fertig...
erc ist offline   Mit Zitat antworten
Alt 13.07.2009, 19:45  
Neuer Benutzer
 
Registriert seit: 09.06.2009
Beiträge: 19
PHP-Kenntnisse:
Fortgeschritten
M*I*B befindet sich auf einem aufstrebenden Ast
Standard

... na, wo sind wir denn hier wirklich? Folgen auf Sprüche auch Taten? Denn wenn ich das selber könnte, würde ich nicht fragen; dafür ist dieses Forum doch gemacht, oder nicht?

BTW: Ich bin zwar'n DAU, aber kein SuperDAU. Die ~10 Zeilen nehme ich Dir nicht ab. Die werden m.E. schon alleine durch das Öffnen beider DB's verballert ...
__________________
... und immer logger bleiben ...
Micha
M*I*B ist offline   Mit Zitat antworten
Alt 13.07.2009, 20:19  
erc
Erfahrener Benutzer
 
Registriert seit: 02.01.2009
Beiträge: 730
PHP-Kenntnisse:
Fortgeschritten
erc wird schon bald berühmt werden
Standard

Eigentlich geb ich auf sowas keine Antworten mehr, aber hier hat mich doch mein ehrgeiz gepackt...

PHP-Code:
$result $db->query("
    SELECT
        new_db.TABLE_NAME AS table,    
        GROUP_CONCAT(new_db.COLUMN_NAME SEPARATOR ',') AS fields
    FROM
        information_schema.COLUMNS AS new_db INNER JOIN
        information_schema.COLUMNS AS old_db ON (new_db.TABLE_NAME = old_db.TABLE_NAME AND new_db.COLUMN_NAME = old_db.COLUMN_NAME)
    WHERE
        new_db.TABLE_SCHEMA = 'new_db' AND
        old_db.TABLE_SCHEMA = 'old_db'
    GROUP BY
        new_db.TABLE_NAME
"
);

foreach(
$result AS $daten) {
    
$db->query("
                INSERT INTO
                    new_db.$daten[table] ($daten[fields])
                SELECT
                    $daten[fields]
                FROM
                    old_db.$daten[table]"
);

Alte und neue Datenbank müssen auf dem selben Server leigen.

PS: ich habs mir erspart die Queries in eine Zeile zu quetschen.
erc ist offline   Mit Zitat antworten
Alt 13.07.2009, 20:41  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Laut Aufgabe sind die Tabellen nicht 100% deckungsgleich. Ergo wird man um manuelle Anpassung gar nicht herum kommen. Der obige Code könnte Dir allenfalls die 100 notwendigen Ausgabsqueries erzeugen (mit echo dann).
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 13.07.2009, 22:27  
Neuer Benutzer
 
Registriert seit: 09.06.2009
Beiträge: 19
PHP-Kenntnisse:
Fortgeschritten
M*I*B befindet sich auf einem aufstrebenden Ast
Standard

@erc:
... ok ... schön, das ich Deinen Ergeiz habe wecken können; ich werde ne Weile brauchen, die Nummer zu durchblicken. Aber Dank schon mal dafür...

@nikosch:
Stimmt. Ich dachte da etwa an so was (aber nicht lachen jetzt)

Lese Tabellennamen NEU ein
:Schleife
Vergleiche Spalten in Tabelle 1(+x) aus ALT mit NEU
Kopiere Daten aus Tabelle 1(+x).ALT nach Tabelle 1(+x).NEU wenn Spalte aus Tabelle.ALT auch in Tabelle.NEU existiert
Gehe zu SCHLEIFE solange noch Tabellen z6um bearbeiten da sind

Ich glaube, so ganz mit SQL geht das nicht und da ist der EInsatz von PHP o.ä. in Verbindung mit SQL notwendig...
__________________
... und immer logger bleiben ...
Micha
M*I*B ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Datensätze aus Datenbank in Flash auflisten beta02 JavaScript, Ajax und mehr 5 23.06.2009 16:03
Hilfe, Datenbank nimmt keine neuen Daten und alte nicht löschen! XTC PHP Tipps 2008 32 11.06.2008 14:15
Brauche Hilfe bei Datenbank Erstellung Smiley89 PHP Tipps 2008 1 26.03.2008 21:57
Mit php dynamisch Namen von Bildnamen sowie Pfad in mysql Datenbank speichern mallmis PHP Tipps 2008 1 19.11.2007 23:04
HILFE ! Brauche ganz dringend hilfe! PHP Tipps 2005-2 2 10.10.2005 23:08
Datenbank prüfen, bitte um Hilfe! d4rki PHP Tipps 2005-2 5 31.08.2005 20:54
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:32
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:31
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:31
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:29
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:29
Hilfe!! Datenbank Fehler (glaube ich...) PHP Tipps 2004-2 9 22.12.2004 13:44
[Erledigt] Chat Server mit Datenbank realisieren - - - Hilfe benötigt PHP Tipps 2004-2 3 14.12.2004 18:38
Hilfe - PHP - Mysql - Museum Datenbank Beitragsarchiv 2 07.12.2004 17:44
Hilfe bzgl. Datenbank abfrage PHP Tipps 2004 5 24.06.2004 18:21

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
datenbank mappen, hilfe datenbank, sql spalten in db kopieren php, xtcommerce datenbank nur teilweise übertragen, mysql migration toolkit keine umlaute, sql datenbank spalten kopieren, php datenbank migrieren, datenbank alt auf neu, db mappen sql, mysql mappen -maxdb, mysql datenbanken mappen, sql mappen innerhalb tabelle, php datenbank duplizieren, php datenbank tabelle 1 zu eins kopieren, datenbanken mappen, sql mappen von tabellen, mappen von datenbanken, datenbenk kopieren php, datenbankfelder mappen, daten aus datenbank mappen php

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:15 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum