Datenzeile direkt kopieren
managergames
- datenbank
0 dedlfix0 managergames0 dedlfix
Hallo
Ich habe 2 Datenbanken f1manager01 und f1manager03.
In beiden ist eine Tabelle fanartikel, die genau den gleichen Aufbau haben. f1manager01 ist mit Daten gefüllt, f1manager03 nicht. Jetzt möchte ich, dass eine bestimmte Benutzerzeile (z.B. team='Ferrari' ) von f1manager01 in f1manager03 kopiert wird. Klar - ich könnte jetzt den Datensatz mit SELECT * FROM fanartikel WHERE team='Ferrari' auslesen und dann wieder das ganze in eine INSERT-Anweisung wieder in die andere Datenbank bringen - aber gibt es vielleicht auch einen Befehl der so mit weniger Arbeit verbindet (PHP-MyAdmin hat ja auch bei der Daten-Sicherung gleich die INSERT-Anweisungen)...
Thomas
echo $begrüßung;
Jetzt möchte ich, dass eine bestimmte Benutzerzeile (z.B. team='Ferrari' ) von f1manager01 in f1manager03 kopiert wird.
Du suchst also die INSERT ... SELECT Syntax.
echo "$verabschiedung $name";
Hi!
Ich glaube du hast mich falsch verstanden mit dem INSERT ... SELECT -Befehl kann ich nur innerhalb einer Datenbank von einer Tabelle in eine andere Tabelle kopieren.
ICh brauche aber einen Befehl, der etwas von eine Zeile einer Tabelle einer Datenbank in eine andere Tabelle in einer anderen Datenbank kopiert.
Thomas
echo $begrüßung;
Ich glaube du hast mich falsch verstanden mit dem INSERT ... SELECT -Befehl kann ich nur innerhalb einer Datenbank von einer Tabelle in eine andere Tabelle kopieren.
Nein, das kann wie viele MySQL-Statements auch datenbankübergreifend arbeiten.
ICh brauche aber einen Befehl, der etwas von eine Zeile einer Tabelle einer Datenbank in eine andere Tabelle in einer anderen Datenbank kopiert.
Du suchst also zusätzlich zum INSERT...SELECT auch noch die im Kapitel Identifier Qualifiers angegebene Schreibweise, um Tabellennamen (und auch Spaltennamen) serverweit eindeutig zu notieren.
echo "$verabschiedung $name";
yo,
Ich glaube du hast mich falsch verstanden mit dem INSERT ... SELECT -Befehl kann ich nur innerhalb einer Datenbank von einer Tabelle in eine andere Tabelle kopieren.
ich denke, er hat dir schon den richtigen tipp gegeben. der befehl sollte auch mit zwei verschiedenen datenbanken funktionieren, indem man die datenbankennamen mit angibt:
datenbankname.tabelle.spalte
du brauchst auf jedenfall für beide datenbanken auch ausreichend berechtigungen. falls es dennoch schwierigkeiten geben sollte, kannst du zuerst die komplette tabelle in die zieldatenbank als temporäre tabelle kopieren und dann den INSERT befehl dort anwenden.
Ilja
Hello Ilja,
ich denke, er hat dir schon den richtigen tipp gegeben. der befehl sollte auch mit zwei verschiedenen datenbanken funktionieren, indem man die datenbankennamen mit angibt:
datenbankname.tabelle.spalte
Das funktioniert aber nur dann, wenn beide Datenbanekn vom selben Server bedient werden.
Anderenfalls wird ein Umweg über eine Applikation ggf. nicht zu umgehen sein.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Irgendwie steh ich immer noch auf dem Schlauch: Ich hab jetzt die alte Tabelle in die gleiche Datenbank getan wie die neue:
Jetzt versuch ich es hiermit. Es geht aber nicht. Es will nämlich noch eine Spalte haben: Ich will aber das es alle Spalten kopiert!
Was muss ich ändern, dass es klappt?
INSERT INTO fanartikel SELECT fanartikelalt FROM fanartikelalt WHERE
team='Ferrari'
Thomas
echo $begrüßung;
Was muss ich ändern, dass es klappt?
INSERT INTO fanartikel SELECT fanartikelalt FROM fanartikelalt WHERE
team='Ferrari'
Der SELECT-Teil wird so notiert wie man ihn auch ohne INSERT davor notieren würde. Das heißt, dass nach dem Schlüsselwort SELECT Spaltennamen oder auch ein * stehen sollen. Ein Tabellenname allein reicht nicht. Man kann aber sowohl den * als auch Spaltennamen um Datenbank- und Tabellennamen ergänzen:
*
tabelle.*
datenbank.tabelle.*
spalte
tabelle.spalte
datenbank.tabelle.spalte
sind gültige Notierungen für Feldnamen.
Für Tabellennamen, wie sie nach FROM und INTO angegeben werden, notiert man:
tabelle
datenbank.tabelle
echo "$verabschiedung $name";