von subjective |
Nein auch unter MySQL 4.x wäre es falsch. Da dort immer 0 eingesetzt wird (durch die Typkonvertierung) und nicht der Standardwert. Bei dir klappte es nur zufällig gerade weil dieser Wert dem Standardwert entsprach. |
von raiserle |
thx, subjective.
naja, das ist ja ein gut nutzbarer fehler von der 4.x.x, wenn man es mal von der seite betrachtet |
von subjective |
Und nochmal - der Fehler leigt nicht in der Tabellendefinition, sondern im SQL mit dem du das Insert machst. Dort muß entweder eine Nummer (optional in Quotes) oder NULL hin. Wenn du möchtest, das der Standardwert verwendet wird, muß da NULL hin oder das Feld gar nicht angegeben werden.
Im SQL-Standard ist strenge Typisierung vorgesehen. Wenn du zB mal PostgreSQL einsetzt, bemerkt man das recht schnell *g*. MySQL 5 behebt also eigentlich nur einen Mangel. Allerdings sollte das auch umschaltbar sein, wenn ich mich nicht irre.
|
von raiserle |
thx subjective, ;)
also bedeutet das die 5er keine automatische typconvertierung mehr macht,
der versteh ich das jetzt wieder falsch |
von TeX |
Ander mal bitte den SQL-Code ab (Feld: okate) so wie es sein soll, ich hab nun alle möglichen Varianten probiert, aber der "Fehler" ist bei jeder Einstellung vorhanden.
1:
2:
3:
4:
5:
6:
7:
8: | CREATE TABLE `gp_navi` (
`id` int(11) NOT NULL auto_increment,
`okate` int(11) NOT NULL default '0',
`pos` int(10) NOT NULL default '0',
`z_p` char(1) NOT NULL default '',
`name` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
); |
|
|