phpMy Admin Frage zu "null" und "not null&quo

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Tarndt
Mitglied
Beiträge: 32
Registriert: 13.07.2003 15:02

phpMy Admin Frage zu "null" und "not null&quo

Beitrag von Tarndt »

Ich habe eigentlich nur eine kleine Frage:

Wenn ich einen MOD habe, in dem ich die Datenbak erweitern muss, steht da, was ich einrichten muss. Wenn da nun nicht explizit "not null" steht, muss dann das feld NULL auf "null" oder "not null" gestellt werden? meine standardeinstellung wäre dort "not null" und bisher hatte ich das immer so gelassen. Oder ist das bei verschiedenen variablen (z.B. VARCHAR(255) ) egal?
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Im Zweifel ist bei MySQL "NULL" Standard (siehe http://www.mysql.com/doc/en/CREATE_TABLE.html). Wenn der Mod sauber programmiert ist, sollte diese Einstellung auch immer funktionieren. Bei NOT NULL hingegen kann es zu Problemen kommen, sobald der Mod explizit mit dem NULL-Wert arbeitet.

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Tarndt
Mitglied
Beiträge: 32
Registriert: 13.07.2003 15:02

Beitrag von Tarndt »

Ahja, und wieder schlauer.
Mit dem Link wolltest Du mich wohl auf diesen Satz bringen
"If neither NULL nor NOT NULL is specified, the column is treated as though NULL had been specified."?
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5394
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ich weis nicht, ob ich jetzt völlig daneben liege, aber bedeutet "not null" nicht, das das betreffende Feld nicht leer sein darf?
Korrigiert mich, aber ich denke, das ist doch der eigentliche Unterschied zwischen "null" und "not null" :-?
Und somit ist eben "null" Standard, damit ein Datensatz auf jeden Fall angelegt werden kann, es sei, der Admin legt bestimmte Felder explizit mit "not null" an...
Grüße
OXPUS
Kein Support bei unaufgeforderten PNs, E-Mails oder auf anderem Weg!!
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

oxpus,

du liegst etwas falsch. Die genaue Beschreibung liegt hinter dem Link, den ich oben gepostet habe.
Ein Feld, dass das Attribut 'NOT NULL' hat, darf durchaus den Wert 0 oder den leeren String ("") annehmen - nur eben nicht den Wert NULL.

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5394
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

@PhilippK
Ach so! Wieder was gelernt. Danke für die Erklärung.
Mit Datenbanken kenne ich mich ja eigentlich aus, aber so im Detail kann man halt immer noch was Neues lernen :wink:

EDIT / Nachtrag:
In der Beschreibung zu CREATE TABLE wird NULL und NOT NULL folgendermassen erklärt (grob beschrieben):
Ein Feld mit Default NULL ist per Standard eben leer.
Ein NOT NULL-Feld beinhaltet als Standardwert eine 0 (numerisch), einen Autowert, einen Zeitstempel (Datum-Zeit) oder einen Leerstring (String-Feld), halt je na Feld-Typ. Korrekt: NULL darf ein solches Feld nicht sein!
Somit ist ein Feld mit Default NOT NULL eben doch nicht leer (Auch ein Leerstring ist ein Inhalt, so habe ich das vor Urzeiten mal gelernt!) :wink: Wird bei einem Dateisatz für ein NOT NULL-Feld nichts angegeben, so setzt die Datenbank halt nur automatisch o.g. Standardwerte ein...
Grüße
OXPUS
Kein Support bei unaufgeforderten PNs, E-Mails oder auf anderem Weg!!
Antworten

Zurück zu „Coding & Technik“