PHP-Nuke 5.5VKP Update - SQL-Einspielungsfehler!!

Begonnen von Novacat_52, 11 Mai 2002, 09:10:59

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Novacat_52

Hi Leute!
Ich habe folgendes Problem: Nachdem ich die Dateien der Update-Packs für das PHP-Nuke 5.5VKP hochgeladen habe und dann die update_nuke.sql.sql mit phpMyAdmin einspielen will kommt folgende Fehlermeldung von phpMyAdmin:
SQL-Befehl :  

CREATE TABLE nuke_proxima_blocks (
  mid int(10) NOT NULL default '0',
  bid int(10) NOT NULL auto_increment,
  bkey varchar(15) NOT NULL default '',
  title varchar(60) NOT NULL default '',
  content text NOT NULL,
  url varchar(200) NOT NULL default '',
  position char(1) NOT NULL default '',
  weight int(10) NOT NULL default '1',
  active int(1) NOT NULL default '1',
  refresh int(10) NOT NULL default '0',
  time varchar(14) NOT NULL default '0',
  blanguage varchar(30) NOT NULL default '',
  blockfile varchar(255) NOT NULL default '',
  view int(1) NOT NULL default '0',
  PRIMARY KEY  (mid,bid)
) TYPE=MyISAM

MySQL meldet:

Incorrect table definition; There can only be one auto column and it must be defined as a key
Was muss ich nun tun, damit es geht, ich habe nichts an der Datei verändert.
THX für schnelle Antworten.

Novacat_52

Micro

*uff*

Syntax ist doch richtig?!

Auch der fehler der dort beschrieben steht ist eigentlich nicht vorhanden.
Du hast nur EIN Feld das auto_incement ist und dieses ist auch einer von zwei Primary Key's ..
Ich habs eben bei mir auf der DB getestet .. es funzt.

Stellt sich mir die Frage, was hast Du für eine MySQL Version?

Mirko

Novacat_52

Es will einfach nicht!
Habe phpMyAdmin 2.2.5 und MySQL 3.22.32.
*hilflosdreinschaun*

Andi

Hi novacat_52,

wissen die Götter, wo das herkommt.... :(
Das Problem wurde im Forum schon ein paarmal behandelt, ohne Lösung :(

Versuche es mal auf die umständliche Tour, im Endeffekt kommt die gleiche Tabelle dabei raus:
DROP TABLE IF EXISTS nuke_proxima_blocks;
CREATE TABLE nuke_proxima_blocks (
mid int(10) NOT NULL default '0',
bid int(10) NOT NULL,
bkey varchar(15) NOT NULL default '',
title varchar(60) NOT NULL default '',
content text NOT NULL,
url varchar(200) NOT NULL default '',
position char(1) NOT NULL default '',
weight int(10) NOT NULL default '1',
active int(1) NOT NULL default '1',
refresh int(10) NOT NULL default '0',
time varchar(14) NOT NULL default '0',
blanguage varchar(30) NOT NULL default '',
blockfile varchar(255) NOT NULL default '',
view int(1) NOT NULL default '0');
ALTER TABLE `nuke_proxima_blocks` ADD PRIMARY KEY (`mid`,`bid`);
ALTER TABLE `nuke_proxima_blocks` CHANGE `bid` `bid` INT(10) DEFAULT '0' NOT NULL AUTO_INCREMENT;
schön´s Grüssle, Andi

Novacat_52

Danke, nun meldet er aber:
SQL-Befehl :  

ALTER TABLE `nuke_proxima_blocks` ADD PRIMARY KEY (`mid`,`bid`)

MySQL meldet:

You have an error in your SQL syntax near '`nuke_proxima_blocks` ADD PRIMARY KEY (`mid`,`bid`)' at line 1

Beim Code vom PHP-Nuke 5.5VKP hatte ich auch schon Probleme, es konnte aber durch einen kleinen Eingriff im Code behoben werden.

So ein Mist!

Andi

Hi nochmal,
denke da liegt ein Problem mit der Mysql-Version vor, 3.22.32 ist nicht unbedingt uptodate :)
Versuche mal, wenn Du die beiden letzten Zeilen abänderst und die französischen Anführungszeichen durch einfache ersetzt, oder ganz weglässt.

ALTER TABLE nuke_proxima_blocks ADD PRIMARY KEY (mid,bid);
ALTER TABLE nuke_proxima_blocks CHANGE bid bid INT(10) DEFAULT '0' NOT NULL AUTO_INCREMENT;

Spiel damit mal ein bisschen rum, die Syntax ist ok  


[Bearbeitet am: 11.5.2002 von SiteAdmin Andi]
schön´s Grüssle, Andi

Micro

ZitatEs will einfach nicht!
Habe phpMyAdmin 2.2.5 und MySQL 3.22.32.
*hilflosdreinschaun*

Das ist die MySQL Version ..
Jede Wette ...
Am besten Du nutzt mal 3.23.47 aufwärts .. und auch diese ist schon nicht mehr die jüngste die ich benutze ..

Mirko

Novacat_52

Schon mal ein guter Anfang, nun steht:
SQL-Befehl :  

ALTER TABLE nuke_proxima_blocks ADD PRIMARY KEY (mid,bid)

MySQL meldet:

Duplicate key name 'PRIMARY'

Den Tipp mit dem Mysql: ich habe ein Bezahl-hoster, da kann ich mysql nicht updaten :-(

Andi

Na also.... :D

Lösche mit phpMyadmin den bereits vorhandenen Primary index und führe den Befehl nochmal aus ;)

Wende Dich mal an Deinen Bezahl-Hoster, Du bezahlst ja was dafür, da gehört auch ein guter Service dazu :)
schön´s Grüssle, Andi

Novacat_52

Hmm, nun heissts:
SQL-Befehl :  

ALTER TABLE nuke_proxima_blocks CHANGE bid bid INT(10) DEFAULT 0 NOT NULL AUTO_INCREMENT

MySQL meldet:

Incorrect table definition; There can only be one auto column and it must be defined as a key

Der "Primary" wird zwar erstellt (Name, Typ: Primary; Kardalität: 0; Felder: mid, bid; In: nuke_proxyma_blocks)
Aber es will nicht!
Kann ich diese 2 Befehle nicht von Hand machen?

Micro

Du kannst natürlich das erstellen der keys ohne die Option "Primary" führen lassen.

Danach kannst Du im phpadmin die beiden auf primary setzen ..