Dussel ist - "alte" Datensätze in neue Tabelle übe

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Steinchen_HH
Mitglied
Beiträge: 21
Registriert: 07.01.2007 21:34

Dussel ist - "alte" Datensätze in neue Tabelle übe

Beitrag von Steinchen_HH »

Hallo,

Ihr seid doch so super-fit hier *beten* Ja, ich habe schon die Suchfunktion benutzt Laughing :P !

Ich habe eine alte Tabelle mit einer anderen Struktur als die neue Tabelle (Gästebuchwechsel).

Wie kriege ich die Datensätze (nicht wenige, bzw. zu viele ums händisch zu machen) in die neue Tabelle?

Alle Parameter anpassen??? Oder geht dann was in die Büchs?

Wahrscheinlich ists super easy, aber ich suche einfach nach den falschen Begriffen und werd deswegen nicht fündig!

Na, Jungs, zeigt dem Mädel mal, wo der Wald steht, den sie nicht sieht

Schönen Sonntag noch.

Die Eva

PS: Wär auch deswegen toll, wenn ich wüßt, wie man Tabelleninhalte ändert, denn dann könnt ich die Smilie-Tabelle auch viiiiel leichter anpassen :lol:
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Wenn nur Felder hinzugefügt / umbenannt / gelöscht wurden:

Code: Alles auswählen

INSERT INTO neue_tabelle (feld_1, feld_2, feld_3, feld_4)
SELECT feld_5, feld_2, "Feld 3", feld_4 FROM alte_tabelle
den SELECT Teil kannst du natürlich beliebig erweitern.
KB:knigge
Steinchen_HH
Mitglied
Beiträge: 21
Registriert: 07.01.2007 21:34

Beitrag von Steinchen_HH »

Super, das ist ja schonmal ein gar prächtig Ansatz ;)

Nun hab ich nen Fehler gekriegt:

SQL-Befehl: Dokumentation

INSERT INTO myphpgb_entries2( `id` , `date` , `ip` , `name` , `email` , `homepage` , `text` )
SELECT `lfd` , `datum` , `ipaddr` , `name` , `email` , `url` , `meinung`
FROM meinungen

MySQL meldet: Dokumentation
#1062 - Duplicate entry '1' for key 1


Und dann kommt der hier:

SELECT *
FROM Array
WHERE CONCAT_WS( "-", `id` , `date` , `ip` , `name` , `email` , `homepage` , `text` ) = "1"
ORDER BY `id` , `date` , `ip` , `name` , `email` , `homepage` , `text`
LIMIT 0 , 30

MySQL meldet: Dokumentation
#1146 - Table 'db1066298-1.Array' doesn't exist


Dies hier die Strukturen der beiden Tabellen:

Alte GB hat die Einträge in die Tabelle "meinungen" geschrieben 3hundertund-Einträge.
`lfd` int(11) NOT NULL auto_increment,
`datum` datetime default NULL,
`sichtbar` enum('0','1') collate latin1_german1_ci NOT NULL default '0',
`ipaddr` varchar(15) collate latin1_german1_ci NOT NULL default '',
`name` varchar(127) collate latin1_german1_ci NOT NULL default '',
`email` varchar(128) collate latin1_german1_ci NOT NULL default '',
`url` varchar(128) collate latin1_german1_ci NOT NULL default '',
`meinung` text collate latin1_german1_ci NOT NULL,
PRIMARY KEY (`lfd`),
KEY `datum` (`datum`)


Das neue GB schreibt in "phpgb_entries"

`comment` text collate latin1_german2_ci NOT NULL,
`date` varchar(10) collate latin1_german2_ci NOT NULL default '',
`email` varchar(50) collate latin1_german2_ci NOT NULL default '',
`homepage` varchar(150) collate latin1_german2_ci NOT NULL default '',
`icq` int(9) NOT NULL default '0',
`id` mediumint(7) NOT NULL auto_increment,
`ip` varchar(15) collate latin1_german2_ci NOT NULL default '',
`status` tinyint(1) NOT NULL default '0',
`name` varchar(27) collate latin1_german2_ci NOT NULL default '',
`activation_code` varchar(32) collate latin1_german2_ci NOT NULL default '',
`text` text collate latin1_german2_ci NOT NULL,
`time` varchar(5) collate latin1_german2_ci NOT NULL default '',
PRIMARY KEY (`id`)


Ihr seid echt spitze, wenn ich das mal so sagen darf!

Was mach ich denn falsch???
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Steinchen_HH hat geschrieben:#1062 - Duplicate entry '1' for key 1
Das heißt du versuchst einen Eintrag mit dem Wert 1 einzufügen, obwohl dieser bereits existiert (betrifft vermutlich das id/lfd Feld). Also entweder die Zieltabelle vorher leeren oder z.B. "SELECT lfd+10, ..." verwenden wenn in der Zieltabelle bereits 10 Datensätze existieren.
Steinchen_HH hat geschrieben:#1146 - Table 'db1066298-1.Array' doesn't exist
Die Tabelle "Array" existiert nicht...
KB:knigge
Steinchen_HH
Mitglied
Beiträge: 21
Registriert: 07.01.2007 21:34

Beitrag von Steinchen_HH »

Super, die Doppelbelegung hab ich gelöscht, nun hab ich ein Spaltenproblem #1241 - Operand should contain 1 column(s)

Die Tabelle "Array" existiert nicht...
*lach* Danke... :) Bin mit nem Engländer verheiratet :)

Danke Dir, Pyramide, für Deine Geduld mit so dusseligen Hühnern wie ich eine bin :lol:
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Steinchen_HH hat geschrieben:nun hab ich ein Spaltenproblem #1241 - Operand should contain 1 column(s)
Bei welcher SQL Anweisung?
KB:knigge
Steinchen_HH
Mitglied
Beiträge: 21
Registriert: 07.01.2007 21:34

Beitrag von Steinchen_HH »

Bei jener:


INSERT INTO myphpgb_entries2 ( `id` , `date` , `ip` , `name` , `email` , `homepage` , `text` )
SELECT `lfd` , `datum` , `ipaddr` , `name` , `email` , `url` , `meinung`
FROM meinungen
Antworten

Zurück zu „Coding & Technik“