[MYSQL] ausgelesene Daten in andere DB eintragen

Pretorian

Grünschnabel
da ich hier neu bin, erstmal ein hallöchen von mir an alle.

MySQL-Client-Version: 5.0.27

Problem:

ich habe verschiedene Datenbanken auf meinem Server und möchte nun bestimmte Daten die ich aus DB1 Tabelle xx auslese über kurz oder lang in die DB2 Tabelle xx eintragen.
da ich nicht der Experte auf diesem Gebiet bin und mich die suche noch nicht das finden lassen hat was ich brauche, hoffe ich das mir hier jemand weiter helfen kann.
das auslesen an sich habe ich schon realisiert, jedoch fehlt mir der Ansatz um diese Daten nun weiter übermitteln zu können.
hinzu würde noch kommen, das die abfrage immer durchgeführt werden sollte, damit neu eingetragene Daten mit übernommen werden können.
ich danke euch schonmal für eure Hilfe.

Mfg Pretorian
 
Hi!

Wenn du deine Daten nur einmalig von einer in eine andere DB transferieren willst, wäre mysqldump und mysqlimport vielleich das Richtige dafür.

Näheres siehe entweder hier oder googel einfach mal nach mysqldump bzw. mysqlimport.

Viel Erfolg!
 
Hi!

Wenn du deine Daten nur einmalig von einer in eine andere DB transferieren willst, wäre mysqldump und mysqlimport vielleich das Richtige dafür.

Näheres siehe entweder hier oder googel einfach mal nach mysqldump bzw. mysqlimport.

Viel Erfolg!


hi JDad.

eventuell habe ich mich dabei falsch ausgedrückt, sry.
ich möchte die Daten nicht nur einmal abrufen oder in eine andere Datenbank importieren, sondern dieses dauerhaft erzeugen.
die Daten werden von einigen anderen Sachen benötigt und ich wollte es umgehen, das ich die Daten nach jedem neuen Eintrag wieder von der einen auf die andere DB manuell importieren muß.
sorry für dieses Missverständnis, aber danke für deine Antwort.

Mfg Pretorian
 
Ah, ok...

So auf die Schnelle würde ich sagen, dass du ein Skript oder ein Programm schreibst. Oder in deiner Applikation das programmierst.

Ich weiss nicht in welchem Kontext du die Daten verschieben willst. Könntest du vielleicht genauer beschreiben, wie du das ganze einzusetzen bedenkst? Ist es eine Art Backup- oder Synchronisationsprogramm? Beschreib doch einfach mal kurz die Funktionsweise deines Programms.

Gruß
 
also eigentlich wollte ich es nun nicht ganz so kompliziert erklärt haben, deshalb versuch ich erstmal etwas zu erläutern.

angenommen ich habe nun zwei DB mit einer Tabelle z.B. Ort.
nun lese ich diese Daten aus der ersten DB aus und möchte sie in der zweiten DB in die gleichnamige Tabelle eintragen.
dieser schritt ist für mich derzeit das Problem.
das auslesen funktioniert ja gut.
doch das übermitteln an die andere DB verstehe ich nicht ganz.
ich müsste demnach die Daten die ich aus der ersten DB ausgelesen habe erfassen und diese an die andere DB übermitteln können.

vielleicht habt ihr ja selbiges oder ähnliches schonmal durchgeführt und könnt mir vielleicht ein Beispiel zeigen.
es geht mir hierbei auch darum es zu verstehen, deshalb wollte ich nicht das andere meine Arbeit übernehmen.
eine Hilfestellung oder Vorlage wäre halt sehr gut.
falls es natürlich garnicht anders geht, würde ich auch näher darauf ein gehen.

Mfg Pretorian
 
Machst du es in Java?

Mach doch zwei Verbindungen je zu einer DB auf. Lies die daten aus der ersten mit SELECT... und schreib die selben Daten mit INSERT... in die zweite DB. Die aus der ersten DB ausgelesenen Daten speicherst du in Variablen zwischen.

Oder, wat sagst du? ;-)
 
Hi,

wenn die beiden daten auf der gleichen Maschine laufen könnte man einen Trigger verwenden.

Gruß

katosan
 
nun bin ich von Arbeit zurück und werde mich der Sache mal nähern.

natürlich melde ich mich dann nochmal, hoffe mit guten Nachrichten.^^
also danke erstmal für eure Bemühungen.

Mfg Pretorian

P.S. bevor ich es vergesse, ja, ich arbeite mit SELECT und INSERT.
 
so, da bin ich wieder.

nochmal ein großes dankeschön an dieser stelle, ich denke das ich mich durch die ersten Schritte gefuchst habe.
die abfrage und der Eintrag meiner Tests funktioniert.
nun hätte ich da aber noch ne frage.
wenn ich nun aus einer Tabelle z.B. alle orte auslese und nicht nur einen, wie bekomme ich diese in die andere Datenbank, so das jeder Eintrag wieder in einem neuen Datensatz gelistet wird.

ich frage ja z.B. so

$abfrage =
"SELECT
user_id
FROM
users
ORDER BY
orte ASC";


$ergebnis = mysql_query($abfrage);

und so gebe ich es dann weiter

$eintrag = "INSERT INTO allgemein (orte) VALUES ('$abfrage')";

$eintragen = mysql_query($eintrag) OR die(mysql_error());

if($eintragen == true)
{
echo "Eintrag war erfolgreich";
}
else
{
echo "Fehler beim Speichern";
}



Mfg Pretorian
 
Du läufst in einer Schleife das Ergebnis-Array ab und fügst die Werte einzeln ein.

Etwa so:
PHP:
<?php
$query  = "SELECT user_id FROM users ORDER BY orte ASC";
$result = mysql_query($query);

while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
    echo "User id :{$row['user_id']} <br>" .

     // hier noch evtl. die notwendigen Überprüfungen machen

    $eintrag = "INSERT INTO allgemein ('user_id') VALUES ('$row['user_id']')";

    $eintragen = mysql_query($eintrag) OR die(mysql_error());

    if($eintragen == true)
    {
           echo "Eintrag war erfolgreich";
    }
    else
    {
           echo "Fehler beim Speichern";
    }
}
?>

Kann sein, dass der Code buggy ist. Hab ihn nicht getestet. Aber vom Ansatz her sollte es so gehen.
 

Neue Beiträge

Zurück