Bestimmte Tabellen einer Datenbank in identische bestehende Tabellen anderer Datenbank integrieren

VolkerF

Benutzer
Beiträge
12
Hallo

Ich habe zwei Coppermine-Bildergalerien installiert. Jede läuft in einer anderen Datenbank, haben aber identische Tabellenpräfixe. Nun will ich beide Galerien vereinen, dazu brauche ich aber nur bestimmte Tabellen damit die Bilder angezeigt werden. Mit welchen sql Befehlen kann ich nun z.B bestimmte Tabellen von Datenbank 1 zu Datenbank 2 transferieren? Ich wollte das über "Operationen" in phpMyAdmin machenEsda wird mir immer gesagt, das die Tabellen schon existieren! Genau das weiß ich auch, will ja nur quasi die die Kategorein, Alben, Votes etc. von Datenbank1 zu Datenbak 2 transferieren. Wie stelle ich das am besten an? Im Coppermine-Forum konnte mir bisher keiner helfen bzw. kam keine Antwort.

Danke Volker
 
Werbung:
Hallo akretschmer

Muss dazu sagen, das ich nicht gerade deer Datenbank-Crack bin ;).

Es erscheint Folgendes:
Fehler
SQL-Befehl:


insert into `usr_web959_1`. select * `usr_web959_2`

MySQL meldet:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select * `usr_web959_2`' at line 1
 
Hi

Also deine Lehrstunde hat bei den Kategorien geholfen. Jetzt wollte ich die Alben reinholen, da kommt der Fehler:
Fehler
SQL-Befehl:


insert into usr_web959_1.cpg15x_albums select * from usr_web959_2.cpg15x_albums

MySQL meldet:

#1062 - Duplicate entry '1' for key 'PRIMARY'
 
Tja, ein PRIMARY KEY verträgt keine doppelten Werte. Du könntest z.B. da bei den neuen Einträgen einen hinreichend großen Offsett addieren.
 
Du hast:

Code:
test=# create table a (i int primary key) ;
CREATE TABLE
test=*# create table b (i int primary key) ;
CREATE TABLE
test=*# insert into a select * from generate_series(1, 10) s;
INSERT 0 10
test=*# insert into b select * from generate_series(1, 10) s;
INSERT 0 10
test=*# select * from a;
 i  
----
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
(10 Zeilen)

test=*# select * from b;
 i  
----
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
(10 Zeilen)

was nicht geht:

Code:
test=*# insert into a select i from b;
FEHLER:  doppelter Schlüsselwert verletzt Unique-Constraint »a_pkey«
DETAIL:  Schlüssel »(i)=(1)« existiert bereits.

was aber geht:

Code:
test=*# insert into a select i+100 from b;
INSERT 0 10
test=*# select * from a;
  i  
-----
  1
  2
  3
  4
  5
  6
  7
  8
  9
  10
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
(20 Zeilen)

test=*#

Lesen, verstehen, anwenden.
 
Hallo

Ich habe jetzt mal geschaut. Die Alben von Galerie 1 haben in der Datenbank die aid von 1-94 und die von der Galerie aid 1-266. Das würde ja bedeuten, das 94 Alben-ID's schon vorhanden sind und es deswegen nicht geht? Liege ich da mit meinen Gedankengängen richtig?
 
Mmmm ok. Nun Galerie2 soll ja zu Galerie 1 . Galerie 1 hat die Tabellen aid von 1-94 (wobei manchmal eine aid fehlt, z.B. nach 79 kommt dann 81). Jetzt will ich in Galerie2 die aid dahingehend ändern das sie eben mit 95 anfangen damit es keine Konflikte gibt. An der Umsetzung scheitert es momentan weil ich nun nicht weiß wie ich das mit select* machen soll ,also welcher Wert dahin soll. In deinem Beispiel steht ja "i+100". i wäre jetzt bei mir was? Wo schaue ich da und welcher Wert statt 100 kommt dann dahin?

*Bin bestimmt einer von den nervigen Schülern? ;)
 
Werbung:
Zurück
Oben