SQL Syntax Fehler CREATE TABLE, VARCHAR?
Weiß jemand was hier falsch ist?
4 Antworten
varchar mit einer Länge von 4 ist nonsens. Bei varchar kommt es darauf an, bei langen Textfeldern, die nur selten die volle Länge benötigen, Platz zu sparen. Da dabei intern noch ein Längenfeld und organisatorischer Aufwand erforderlich ist, ist das Feld insgesamt in diesem Fall länger statt kürzer gegenüber char. Der Zweck wird völlig verfehlt. Ich vermute mal, dass es für den varchar eine Mindestgröße gibt. Jedenfalls wäre das sinnvoll. Dass der Fehler, wie Du vermutest, am DOUBLE lag, glaube ich nicht. Es gab da auch keine Fehlermeldung dazu.
Die nachkommastellen fehlen
Z.B. DOUBLE(4,4)
Und ich bin mir Grade nicht sicher ob es DOUBLE überhaupt gibt, ansonst FLOAT oder DOUBLE PRECISION
Anstatt varchar 600 würde ich Text nehmen
PS wenn ein Syntaxfehler Auftritt:
Wie hier in Zeile 5,
liegt der Fehler meistens in der Zeile vorher (wie hier)
Bei einer Länge von 600 drängt sich varchar geradezu auf. Denn es erscheint unwahrscheinlich, dass dieses Feld immer in voller Länge benötigt wird. Als Tipp ist das auf jedenfall falsch. Außer, Du wüsstest konkret, dass da immer der Platz voll genutzt wird. Möglich wäre das schon.
Liegt vielleicht nur an der Darstellung aber der Create Table Befehl braucht ein Semikolon am Ende der Klammer:
CREATE TABLE Produkt (
...
);
das Semikolon ist da, das wird hier bei der Fehlermeldung in MySQL nur nicht dargestellt, ist mir auch schon aufgefallen :)
DOUBLE erwartet zwei Parameter, nicht nur einen. Vermutlich wäre DECIMAL für den Preis auch die bessere Wahl.
Davon abgesehen macht VARCHAR(600) auch keinen Sinn.
habe statt double decimal verwendet jetzt für den preis, aber warum nicht double in dem Fall?
danke, es hat wirklich daran gelegen, dass ich bei double nur eine zahl geschrieben habe, jetzt funktionierts. habe varchar auch auf 255 gesetzt