MySQL: Migration von 3.x nach 4.x

yahooooo

Mitglied
Hi zusammen!

Ich hab hier ein mittelschweres Problemchen. Und zwar hab ich hier einen Shop (Caupo), der von einem Server mit ner 3er Version von MySQL auf nen Server mit 4er Version übertragen werden soll. Leichter gesagt als getan: beim Einspielen des Dumps fange ich mir Fehlermeldungen ein. Es geht beispielsweise um

Code:
# phpMyAdmin MySQL-Dump
# version 2.2.7-pl1
# http://phpwizard.net/phpMyAdmin/
# http://www.phpmyadmin.net/ (download page)
#
# Host: localhost
# Erstellungszeit: 29. April 2005 um 14:04
# Server Version: 3.22.32
# PHP-Version: 3.0.16
# --------------------------------------------------------

#
# Tabellenstruktur für Tabelle shop_artikel
#

DROP TABLE IF EXISTS shop_artikel;
CREATE TABLE shop_artikel (
   id int(11) DEFAULT '0' NOT NULL auto_increment,
   artikel_art varchar(30),
   artikel_nr varchar(30) NOT NULL,
   artikel_name varchar(30),
   beschreibung text,
   artikel_aktion varchar(255),
   image_small varchar(60),
   image_big varchar(60),
   preis_a decimal(12,2),
   preis_b decimal(12,2),
   preis_c decimal(12,2),
   preis_d decimal(12,2),
   preis_e decimal(12,2),
   mwst decimal(5,2),
   timestamp timestamp(14),
   PRIMARY KEY (id)
);


Dabei meckert er erstmal über
id int(11) DEFAULT '0' NOT NULL auto_increment,
Das Problem scheint mir zu sein, dass der Defaultwert 0 ist und gleichzeitig gesagt wird, dass der Wert NOT NULL sein darf.

Grundsätzlich würd ich jetzt stumpf eines der beiden Teile da rausnehmen, bin mir aber nicht ganz im Klaren darüber, was das für Auswirkungen haben könnte.

Jetzt meine Frage:
Wie kann ich am einfachsten die Datenbank rüberspielen, ohne großartig von Hand am SQL-Code rumzudoktorn? Gibt es da Tools für solche Zwecke?
 
Schau mal bei der CREATE-Syntax vorbei.
Eine Ganzzahl-Spalte kann das zusätzliche Attribut AUTO_INCREMENT haben. Wenn Sie einen Wert von NULL (empfohlen) oder 0 in eine AUTO_INCREMENT-Spalte einfügen, wird die Spalte auf wert+1 gesetzt, wobei wert der größte momentan in der Tabelle vorhandene Spaltenwert ist. AUTO_INCREMENT-Folgen fangen mit 1 an.
Ich würde eher als Problem sehen, dass die 0 in Anführungszeichen steht, aber sicher bin ich mir da auch nicht. Ändern von '0' in NULL sollte Abhilfe schaffen, wenn das Problem nicht woanders liegt.

Gruß hpvw
 
Ich glaube mich zu erinnern, dass auto_increment-Felder keinen DEFAULT haben dürfen. Wäre einen Versuch wert, falls Dein Problem nicht bereits gelöst ist.
 
Das Problem musste erstmal wieder ruhen, da zwischenzeitlich andere Projekte dazwischengekommen sind.

Ich meine: dass auto_increment-Spalten keinen Default-Wert haben dürfen klingt zumindest plausibel. Aber seit wann ist das so? Bei der 3er Version scheint das noch möglich gewesen zu sein, denn von da kommt ja der Dump.

Das mit der 0 hab ich glaub ich damals ausprobiert. Kein Erfolg. Hab erstmal den Default-Wert rausgenommen. Sollte _eigentlich_ kein Problem sein...aber man kennt das ja...
 
Zurück