tabellen teil kopieren

tabellen teil kopieren

am 05.07.2006 12:35:22 von Neugi

Hi,

ich versuche einen gewissen teil von einer datenbank in eine andere zu
kopieren mit den folgenden syntax

mySql:
INSERT INTO `testbd`.`ARTIKEL`
SELECT *
FROM `testdb2`.`ARTIKEL` , `testdb`.`ARTIKEL`
WHERE `testdb2`.`ARTIKEL`.`ARTNUM` >

MAX( `testdb`.`ARTIKEL`.`ARTNUM` )

funktionieren sollte das so, das nur die artikel nummern die sich von
der einen zur anderen unterscheinden in die andere kopiert werden.
damit diese den gleichen inhalt enthalten.

gruz

Re: tabellen teil kopieren

am 05.07.2006 12:51:33 von Christian Kirsch

neugii@gmail.com schrieb:
> Hi,
>
> ich versuche einen gewissen teil von einer datenbank in eine andere zu
> kopieren mit den folgenden syntax
>
> mySql:
> INSERT INTO `testbd`.`ARTIKEL`
> SELECT *
> FROM `testdb2`.`ARTIKEL` , `testdb`.`ARTIKEL`
> WHERE `testdb2`.`ARTIKEL`.`ARTNUM` >
>
> MAX( `testdb`.`ARTIKEL`.`ARTNUM` )
>
> funktionieren sollte das so, das nur die artikel nummern die sich von
> der einen zur anderen unterscheinden in die andere kopiert werden.
> damit diese den gleichen inhalt enthalten.
>

Und was ist jetzt Deine Frage?

Vielleicht solltest Du
http://dev.mysql.com/doc/refman/5.0/en/insert-select.html nochmal
lesen, ggfs. die Version, die für *Deine* MySQL-Version zutrifft.

Re: tabellen teil kopieren

am 05.07.2006 12:57:19 von Neugi

naja das funktioniert leider nicht,

und jetzt wollt ich fragen ob wer einen tipp hat was ich da falsch
gemacht habe.

mysql version ist 4.0.24

gruz

Re: tabellen teil kopieren

am 05.07.2006 13:14:39 von Christian Kirsch

Neugi schrieb:
> naja das funktioniert leider nicht,
>
> und jetzt wollt ich fragen ob wer einen tipp hat was ich da falsch
> gemacht habe.
>
> mysql version ist 4.0.24
>

Naja, dann lies doch bitte die Dokumentation von MySQL 4.0 zu INSERT
INTO ... SELECT und guck' Dir genau an, ob Deine MySQL-Version das kann,
was Du da tun willst.

Und gewöhn Dir bitte an, Postings so zu formulieren, dass diejenigen,
von denen Du Antwort haben willst, sie auch verstehen. Dazu gehört eine
VERNÜNFTIGE Fehlerbeschreibung. "funktioniert leider nicht" ist das
nicht. Wenn Du eine Fehlermeldung bekommst, dann *lies* sie. Versuch'
sie zu verstehen, und wenn das nicht hilft, kopiere sie in Dein Posting.

Eine Tastatur mit funktionierender Umschalttaste, die Du dann auch
benutzt, hilft zudem der Lesbarkeit Deines Postings. Großbuchstaben
dienen nicht dazu, Leute zu nerven, sondern ihnen das Verständnis von
Texten zu erleichtern.

Re: tabellen teil kopieren

am 05.07.2006 13:48:09 von Thomas Rachel

neugii@gmail.com wrote:

> Hi,
>
> ich versuche einen gewissen teil von einer datenbank in eine andere zu
> kopieren mit den folgenden syntax
>
> mySql:
> INSERT INTO `testbd`.`ARTIKEL`
> SELECT *
> FROM `testdb2`.`ARTIKEL` , `testdb`.`ARTIKEL`
> WHERE `testdb2`.`ARTIKEL`.`ARTNUM` >
>
> MAX( `testdb`.`ARTIKEL`.`ARTNUM` )
>
> funktionieren sollte das so, das nur die artikel nummern die sich von
> der einen zur anderen unterscheinden in die andere kopiert werden.
> damit diese den gleichen inhalt enthalten.

* Aufgrund der letzten Bedingung noch mal eine Nachfrage:
- Alle die, die sich unterscheiden, (laut Deinem Text), oder
- nur die, die (wie Du's gemacht hast) "neu" dazugekommen sind?
Falls ersteres: Schau Dir mal bei der Gelegenheit noch das Kapitel über
LEFT/RIGHT JOIN im Manual an.

* Wie lautet Deine Tabellenstruktur der beiden Tabellen? (SHOW CREATE TABLE)

* Bist Du sicher, daß das SELECT * die gleiche Spaltenstruktur (Anzahl,
Reihenfolge) aufweist wie es für das INSERT INTO notwendig ist? (Ich bin
mir ziemlich sicher, daß dem nicht so ist)

* Warum diese "`" drumrum? Die machen das Ganze unlesbar und sind nur nötig,
wenn Du ansonsten ungültige Zeichen oder Schlüsselwörter in Deinen
Tabellen- und Spaltennamen verwendest.


Thomas