PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : V-Check



GraueEminenz
20.09.2009, 08:50
Guten Morgen,

was stimmt hier nicht? Bitte um Hilfe:



CREATE TABLE `vms_vklicks` (
`uid` int(11) NOT NULL default '',
`klick` int(11) NOT NULL default '0',
`verguetet` int(11) NOT NULL default '0'
) TYPE=MyISAM;




Fehler
SQL-Befehl:

CREATE TABLE `vms_vklicks` (

`uid` INT( 11 ) NOT NULL DEFAULT '',
`klick` INT( 11 ) NOT NULL DEFAULT '0',
`verguetet` INT( 11 ) NOT NULL DEFAULT '0'
) TYPE = MYISAM
MySQL meldet:

#1067 - Invalid default value for 'uid'


Danke im vorab!

DimpleX
20.09.2009, 09:05
ist das ein " oder 2 ' (hochkomma?)

tauschmal das gänzefüsschen gegen '' <- 2 ' aus

DimpleX

GraueEminenz
20.09.2009, 09:21
ist das ein " oder 2 ' (hochkomma?)

tauschmal das gänzefüsschen gegen '' <- 2 ' aus

DimpleX

Das wars :wink: manchesmal ist man blind:thumb: Danke!



CREATE TABLE `vms_vklicks` (
`uid` int(11) NOT NULL default '0', <--------
`klick` int(11) NOT NULL default '0',
`verguetet` int(11) NOT NULL default '0'
) TYPE=MyISAM;


Thema kann geschlossen werden.

DimpleX
20.09.2009, 09:29
ne kam vor paar tagen auch jemand , war auch das gänsefüsschen problem

daher ist mir es aufgefallen ;)


:cool:


DimpleX

h-m
22.09.2009, 17:11
Im ersten Post sind bereits zwei Hochkommata an der betroffenen Stelle und keine Gänsefüßchen.
Kleine Problem-Erläuterung für Interessierte:
Ein leerer String kann nicht in einen Integer umgewandelt werden.
default '0' geht weil MySQL den String '0' in den Integer 0 (erstens) umwandeln kann und das (zweitens) auch tut.
Korrekter wäre wohl default 0. Aber da MySQL ja fast alles schluckt und es sich um ein CREATE TABLE Statement handelt, das ja nicht ständig ausgeführt wird, ist es wohl performance-technisch unbedeutend wenn MySQL da noch eine Typ-Umwandlung durchführen muss.
Bei Statements die öfter ausgeführt werden, achte ich in der Regel darauf dass MySQL keine Typ-Umwandlungen vornehmen muss, d.h. Werte sollten zum Spaltentyp passen.
Wenn mal das Datenbank-System geändert wird und eine restriktivere Auslegung der SQL-Syntax durchführt, dann könnte das durchaus nützlich sein, von vorne herein nahe an der Standard-Syntax zu bleiben.
Aber wer will schon bei einem VMS auf PostgreSQL oder so umsteigen...