Tabellen von einer DB in andere kopieren
Tabellen von einer DB in andere kopieren
am 13.09.2006 16:04:42 von Sebastian Deiszner
Hallo,
mit
INSERT INTO tabelleB SELECT * FROM tabelleA
kopiere ich innerhalb einer Datenbank Tabellen incl. Inhalt.
Die Tabelle A ist in DB1 - die Tabelle B in DB2.
Wie kopiere ich über "Datenbankgrenzen" hinweg?
gruß
Sebastian
Re: Tabellen von einer DB in andere kopieren
am 13.09.2006 16:19:52 von Claus Reibenstein
Sebastian Deiszner schrieb:
> mit
>
> INSERT INTO tabelleB SELECT * FROM tabelleA
>
> kopiere ich innerhalb einer Datenbank Tabellen incl. Inhalt.
>
> Die Tabelle A ist in DB1 - die Tabelle B in DB2.
>
> Wie kopiere ich über "Datenbankgrenzen" hinweg?
Indem Du die Datenbanken mit angibst:
INSERT INTO DB2.tabelleB SELECT * FROM DB1.tabelleA
Gruß. Claus
Re: Tabellen von einer DB in andere kopieren
am 13.09.2006 16:21:52 von Thomas Rachel
Sebastian Deiszner wrote:
> INSERT INTO tabelleB SELECT * FROM tabelleA
>
> kopiere ich innerhalb einer Datenbank Tabellen incl. Inhalt.
>
> Die Tabelle A ist in DB1 - die Tabelle B in DB2.
>
> Wie kopiere ich über "Datenbankgrenzen" hinweg?
Durch "qualifizierte" Tabellenangabe.
Die Datenbankauswahl dient dazu, die Queries kurz zu halten, so daà Du eine
Tabelle nur mit ihrem Namen anzusprechen brauchst.
Willst Du eine Tabelle aus einer konkret angegebenen DB, muÃt Du
Datenbank.Tabellenname schreiben. (So wie Du beim Telefonieren die Vorwahl
innerhalb des Ortsnetzes weglassen kannst, auÃerhalb jedoch davor setzen
muÃt.)
Also INSERT INTO DB1.tabelleB SELECT * FROM DB2.TabelleA
was ohne Vorauswahl einer Datenbank funktioniert (und, nebenbei, schlechter
Stil ist - weder Spalten der Zieltabelle als auch Spalten der
Ursprungstabelle sind benannt. Für mal schnell was rüberzuschaufeln ist es
aber ok.)
Thomas
--
Das ist keine Signatur, es handelt sich nur um eine Signatur-Attrappe.
Re: Tabellen von einer DB in andere kopieren
am 13.09.2006 16:33:02 von Christian Kirsch
Am 09/13/2006 04:04 PM schrieb Sebastian Deiszner:
> Hallo,
>
> mit
>
> INSERT INTO tabelleB SELECT * FROM tabelleA
>
> kopiere ich innerhalb einer Datenbank Tabellen incl. Inhalt.
>
> Die Tabelle A ist in DB1 - die Tabelle B in DB2.
>
> Wie kopiere ich über "Datenbankgrenzen" hinweg?
>
Vergleichbare Fragen hatten wir hier vor zwei bis drei Wochen erst.
Bitte suche nach vorhandenen Antworten bevor Du fragst.
Allgemein kannst Du in MySQL jede Tabelle durch Angabe des
Datenbanknamens genauer spezifizieren:
SELECT bla FROM db.tabelle;
Im konkreten Fall hat Dein Unternehmen nur Aussicht auf Erfolg, wenn
Du nicht nur Zugriff auf beide Datenbanken hast, sondern auch für
beide exakt dieselbe Usernamen/Passwort-Kombination verwendest.
Alternativen zu Deinem Vorgehen - wenn also die Rechte nicht passen
oder die Usernamen/Passwörter sich unterscheiden, wurden hier bereits
genannt.
Re: Tabellen von einer DB in andere kopieren
am 13.09.2006 18:33:27 von Sven Paulus
Sebastian Deiszner wrote:
> INSERT INTO tabelleB SELECT * FROM tabelleA
> kopiere ich innerhalb einer Datenbank Tabellen incl. Inhalt.
Nicht wirklich, Du kopierst _nur_ den Inhalt.
CREATE TABLE tabelleB SELECT * FROM tabelleA
dagegen kopiert die Tabellendefinition (allerdings ohne Indizes, die
Zieltabelle ist dann diesbezueglich voellig nackt!) und die Inhalte.
Das geht auch incl. Datenbanknamen:
CREATE TABLE foo.tabelleB SELECT * FROM bar.tabelleA