Syntaxfehler SQL ALTER TABLE, ADD...

radarin

Angesehenes Mitglied
Hallo zusammen, ich habe ein Problem beim Erstelle zusätzlicher Spalten in einer Tabelle mittels SQL-Befehl.

CODE ALTER TABLE `cms_css`
ADD `xxx6` VARCHAR( 10 ) NOT NULL AFTER `xxx5` ,
ADD `xxx7` VARCHAR( 10 ) NOT NULL AFTER `xxx6` ,
ADD `xxx8` VARCHAR( 10 ) NOT NULL AFTER `xxx7`&#59;


Dieser Code funktioniert. Der Folgende aber nicht:


CODE ALTER TABLE `cms_css`
ADD `bildtxt_font` varchar( 100 ) collate latin1_german1_ci NOT NULL AFTER `zitat_width` ,
ADD `bildtxt_size` int( 2 ) NOT NULL default `0` AFTER `bildtxt_font` ,
ADD `bildtxt_color` varchar( 6 ) collate latin1_german1_ci NOT NULL AFTER `bildtxt_size` ,
ADD `bildtxt_align` varchar( 10 ) collate latin1_german1_ci NOT NULL AFTER `bildtxt_color` ,
ADD `bildtxt_decoration` varchar( 10 ) collate latin1_german1_ci NOT NULL AFTER `bildtxt_align` ,
ADD `bildtxt_weight` varchar( 10 ) collate latin1_german1_ci NOT NULL AFTER `bildtxt_decoration` ,
ADD `bildtxt_style` varchar( 10 ) collate latin1_german1_ci NOT NULL AFTER `bildtxt_weight`&#59;


Die Fehlermeldung:
#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 '0` AFTER `bildtxt_font` ,
ADD `bildtxt_color` varchar( 6 ) collate latin1_germ' at line 3

Ich hab die Hochkommas, die Kommas und das Semikolon kontrolliert und kann eigentlich keinen Fehler finden.

Gruss René
 
Ich denke, der Default-Wert sollte in Hochkommata angegeben werden, nicht in Backticks

CODE ADD `bildtxt_size` int( 2 ) NOT NULL default '0' AFTER `bildtxt_font` ,
 
Danke für den Hinweis. Ich habe den Befehl so verwendet und erweitert wie er mir beim manuellen anlegen zurückgegeben wurde.

Da wird für die Spalten Backticks verwendet. Die müssen offenbar so sein, denn mit Hochkommas gehts nicht. Ist für mich nicht logisch. Aber solange es funktioniert...
 
Die Spaltenbezeichnungen werden (optional) in Backticks eingefasst, das ist schon richtig so. Der Defaultwert '0' ist aber kein Spaltenname, deswegen muss dieser in Hochkommata eingeschlossen werden - siehe den von mir korrigierten Codeabschnitt.

Edit:

da es sich um einen Zahlenwert handelt ("int( 2 )"), kann man die Hochkommata hier wohl auch ganz weglassen:

CODE ADD `bildtxt_size` int( 2 ) NOT NULL default 0 AFTER `bildtxt_font` ,
 
Zurück
Oben