Was ist eine NOT NULL-Einschränkung?
Die NOT NULL-Einschränkung stellt sicher, dass eine Spalte keine Nullwerte enthalten kann, was erfordert, dass jede Zeile in der Tabelle einen Wert ungleich Null für diese bestimmte Spalte hat.
Anforderungen an das Tutorial:
Um den Anweisungen in diesem Beitrag folgen zu können, gehen wir davon aus, dass Sie über die folgenden Voraussetzungen verfügen:
- Installierter PostgreSQL-Server auf Ihrem Computer
- Grundlegende SQL-Kenntnisse
- Berechtigung zum Erstellen der Datenbanktabellenobjekte wie Einschränkungen, Funktionen usw
Beispieltabelle:
Beginnen wir mit der Einrichtung einer Beispieltabelle mit Spalten, die eine Nicht-Null-Einschränkung enthalten. Nehmen Sie die folgende Anweisung zum Erstellen einer Tabelle, die eine Basistabelle einrichtet, die der Tabelle wp_users in WordPress ähnelt:
TABELLE wp_users ERSTELLEN (
ID SERIELLER PRIMÄRSCHLÜSSEL,
user_login VARCHAR(60) NOT NULL,
user_pass VARCHAR(255) NICHT NULL,
user_nicename VARCHAR(50) NOT NULL,
user_email VARCHAR(100) NICHT NULL,
user_url VARCHAR(100),
user_registered TIMESTAMP NOT NULL DEFAULT current_timestamp,
user_activation_key VARCHAR(255),
user_status INT NOT NULL DEFAULT 0,
Anzeigename VARCHAR(250) NICHT NULL
);
Anhand der angegebenen Abfrage werden Sie feststellen, dass die meisten Spalten eine NOT NULL-Einschränkung enthalten.
Die effizienteste Methode zum Erstellen einer NOT NULL-Einschränkung in einer bestimmten Spalte ist während der Tabellenerstellung. Dadurch wird sichergestellt, dass alle der Tabelle hinzugefügten Daten den Regeln der Einschränkung entsprechen.
Wenn Sie jedoch eine Einschränkung zu einer vorhandenen Tabelle hinzufügen, gelten die Regeln nur für die Daten, die nach der Einschränkung hinzugefügt werden, und nicht für vorhandene Daten. Dies kann insbesondere bei großen Tabellen zu Inkonsistenzen führen.
Fügen Sie eine NOT NULL-Einschränkung hinzu
In einigen Fällen möchten Sie möglicherweise eine NOT NULL-Einschränkung zu einer vorhandenen Tabelle hinzufügen. Sie können beispielsweise den Befehl ALTER TABLE gefolgt von der Klausel ALTER COLUMN verwenden.
Die Syntax lautet wie folgt:
ALTER TABLE TabellennameALTER COLUMN Spaltenname SET NOT NULL;
Ersetzen Sie „table_name“ durch Ihre Zieltabelle und „column_name“ durch die Zielspalte, auf die Sie die Einschränkung anwenden möchten.
Überprüfen Sie die Einschränkung
Sie können überprüfen, ob die Einschränkung für eine bestimmte Tabelle vorhanden ist, indem Sie den Befehl „\d“ im PSQL-Dienstprogramm verwenden.
\d TabellennameBeispiel:
sample_db=# \d wp_users;Die resultierende Ausgabe lautet wie folgt:
Entfernen Sie die NOT NULL-Einschränkung
Möglicherweise möchten Sie auch die NOT NULL-Einschränkung aus einer bestimmten Spalte entfernen. Dazu können wir die Klauseln ALTER TABLE und ALTER COLUMN wie folgt verwenden:
ALTER TABLE TabellennameALTER COLUMN Spaltenname DROP NOT NULL;
Um beispielsweise die NOT NULL-Einschränkung aus der Spalte „user_url“ der Tabelle „wp_users“ zu entfernen, können wir die folgende Abfrage ausführen:
ALTER TABLE wp_users ALTER COLUMN user_url DROP NOT NULL;Dadurch sollte die Einschränkung aus der Tabelle gelöscht werden.
Abschluss
In diesem Tutorial wurde untersucht, wie wir mit der NOT NOLL-Einschränkung in PostgreSQL arbeiten können. Wir haben auch untersucht, wie man eine bestehende NOT NULL-Einschränkung aus einer bestimmten Spalte löscht.