NULL oder NOT NULL, das ist hier die Frage...

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
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

NULL oder NOT NULL, das ist hier die Frage...

Beitrag von S2B »

Hi @all,
wie schon der Titel sagt, würde ich gerne wissen, was denn nun genau der Unterschied zwischen NULL und NOT NULL beim CREATE TABLE-Query ist. Die phpBB-Group hat in den scheme-Dateien für die Installation zwar beide Methoden verwendet, ich konnte aber kein System dahinter erkennen...

Code: Alles auswählen

-- phpbb_user_group:
CREATE TABLE phpbb_user_group (
   group_id mediumint(8) DEFAULT '0' NOT NULL,
   user_id mediumint(8) DEFAULT '0' NOT NULL,
   user_pending tinyint(1),
   KEY group_id (group_id),
   KEY user_id (user_id)
);

-- phpbb_banlist
CREATE TABLE phpbb_banlist (
   ban_id mediumint(8) UNSIGNED NOT NULL auto_increment,
   ban_userid mediumint(8) NOT NULL,
   ban_ip char(8) NOT NULL,
   ban_email varchar(255),
   PRIMARY KEY (ban_id),
   KEY ban_ip_user_id (ban_ip, ban_userid)
);
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Wenn du ein Feld ohne 'NOT NULL' definierst, muss in dieses Feld kein Wert eingetragen werden, das Feld kann also leer bleiben. Wenn du NOT NULL angibst, muss ein Wert angegeben werden: entweder beim INSERT-Statement oder als Standardwert.

Ein Beispiel: Einen Benutzernamen musst du immer angeben, da ein Benutzer ohne Benutzernamen keinen Sinn macht. Anders sieht es aus, wenn du z.B. einen Preis erfasst: da macht es Sinn, zwischen NULL (ich habe keine Preisangabe) und einem Preis von 0 (kostenlos) zu unterscheiden.

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
Antworten

Zurück zu „Coding & Technik“