Datenbank umschreiben?

No-Body

Gesperrt
Hallo liebe User °°

Habe von einen Freund ne Datenbank bekommen,da sind rund 20 000 Einträge drin zu einen Tehma nur sind die in 2 verschiedenen Tabellen die eine heist zb. Link1 (und hat 10 000 Einträge) die ander heist Link2 (10 000 Einträge) wie mach ich das das ich die beiden mit einander verbinde ? allso alles aus link1 in link2 copy?bitte gut erklären am besten mit script ?

Gruß No-Body?
 
Wenn die spalten Identisch sind dann brauchst das ganze nur in ein Array schreiben und anschließend von array wieder in die Db eintragen.

Mfg Splasch
 
Ja hast recht sry hab meine Frage bischen dumm gestehlt ,hab jetzt in der Tabelle Link1 ,soll die Kategorei zb. Alben heisen das tut sie auch in der einen ,nur in Link2 steht für Album eine 2 das heist müste erstmal alle Einträge gleich schreiben hat jemand ein Script wie ich in einer Datenbank alle Einträge (10 000) die die Nr.1 haben in cd und Nr.2 in Alben usw schreiben kann ?

Gruß No-Body:confused:
 
Hi No-body,

erstmal rate ich dir dringend deinen Post nochmal zu lesen, bevor du ihn losschickst und Interpunktion zu benutzen. Das erhöht gemein die Lesbarkeit und Verständlichkeit ;)

Soweit ich das verstanden habe:
- Du willst in der ersten Tabelle alle 1 duch "CD" ersetzen und alle 2 durch "Album"
- Danach dann alle Einträge aus Tabelle 2 an Tabelle 1 anhängen
Zumindest vom Prinzip her... ?

Punkt 1 kannst du so machen:
Code:
//Erstmal den Datentyp von (wahrscheinlich Integer oder so) auf String umstellen:
ALTER TABLE `link1` CHANGE `link1_cat` `link1_cat` VARCHAR( 255 ) NOT NULL 
//Dann alle Zahlen durch die Strings ersetzen:
UPDATE `link1` SET `link1_cat` = 'CD' WHERE `cat` = '1'
UPDATE `link1` SET `link1_cat` = 'Album' WHERE `cat` = '2'

Den Inhalt von Tabelle zwei kannst du dann so rüberkopieren:
Code:
INSERT INTO `link1` SELECT * FROM `link2` ;

Wahrscheinlich klappt das nicht mit der Primary-Key-Spalte. Die könntest du ja vorher in beiden Tabellen löschen und nachher wieder neu anlegen:
Code:
ALTER TABLE `link1` DROP `id` 
ALTER TABLE `link2` DROP `id` 
ALTER TABLE `link1` ADD `id` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;

Hoffe es hilft ein bisschen.
 
Ja danke DeeJTwoK°°

Den ersten Teil hab ich verstanden,aber könnteste den 2ten mal bischen besser erklären ?

Gruß No-Body:confused:
 
Der Obige befehll sollte das eigentlich schon erledigt haben für dich.
Aber es gibt wie immer viele Wege die nach Rom führen.

Du kanst aber auch folgendes machen.Geh in phpmaydamin rein exportiere deine 2 Tabele in eine Sql datei.
Anschließend öffnest du die Sql Datei mit einem Editor und wählst dort aus suchen/ersetzen.

Danach brachst nur noch suchen 1 angeben und ersetzen durch alben oder eben das was in Tabelle 1 steht. Wenn du so nun alle werte geändert hast speicherst du die Sql datei ab.

Nun makierst du alle insert befehle in der Sql datei und kopierst die in die Zwissenablage (STRG+C)
Dann gehst du wieder zu phpmyadmin rein öffnest 1 tabelle und wählst anschließend Sql aus dort kopierst du den Ihnalt der zwischen ablage wieder rein (Strg+v) und fürst den Befehl aus.

Wenn du bis hierhin alles richtig gemacht hast.Dann hast du es geschafft und alle Einträge sind in der Tabelle1

Mfg Splasch
 
Hallo liebe User °°

Ja also in Tabelle 1 und 2 sind manchmal die gleichen ID´s das darf ja nicht sein ´also könnt ihr mal bischen genauer erklären wie ich das mache?

Gruß No-Body:confused:

PS: Hab´s jetzt geraft denke das geht garnicht,weil noch andere Tabellen mit der id der Link1 und Link2 Tabellen arbeiten ,würde zu mindest erklären warum der vorbesitzer das auch nicht zu einer gemacht hat fuck :confused:
 
Zuletzt bearbeitet:
[edit]
ahh.. den letzten Eintrag hab ich grad erst gelesen. Das erklärt natürlich einiges :D
[/edit]


Was klappt daran nicht?
Wenn man davon ausgeht, dass in jeder Tabelle eine Spalte mit einer eindeutigen ID existiert (was bei den meisten Tabellen so ist) und die beiden Tabellen bisher anscheinend unabhängig voneinander verwaltet worden sind, ist es sehr wahrscheinlich, dass es in Tabelle2 IDs gibt, die auch in Tabelle1 vorkommen. Und genau dann funktioniert der Befehl nicht, da MySQL sich (sinnvollerweise) weigert in einer PRIMARY-Key-Spalte DOPPELTE Keys abzulegen.

hat geklappt ,aber wie mach ich jetzt aus 2tabellen eine?:confused::confused:
Du hast also in der ersten Tabelle alle Zahlen durch die entsprechenden Wörter ersetzt!?
Zeig uns doch am besten mal, wie die Strukur deiner Tabelle aussieht. Am besten mal in phpMyAdmin
Code:
EXPLAIN `link1`
eingeben und die Ergebnistabelle hier hinkopieren. Das gleiche auch mit der anderen Tabelle. Und es wäre gut zu wissen, wie denn in jeder Tabelle so ein Datensatz beispielsweise aussieht.
 
Zurück