Drop-Not-Null-Constraint in PostgreSQL
-
Bedeutung der Verwendung der Bedingung
NOT NULL
-
Wenden Sie die Bedingung
Not Null
in PostgreSQL an -
Löschen Sie die Bedingung
Not Null
in PostgreSQL
Die Bedingung NOT NULL
ist ein ziemlich hilfreiches Werkzeug in PostgreSQL. Es könnte jedoch etwas schwierig zu bedienen sein. In diesem Artikel wird erläutert, wie Sie es anwenden und löschen können, um die gewünschten Ergebnisse in Ihrer Datenbank zu erzielen.
Bedeutung der Verwendung der Bedingung NOT NULL
Die Einschränkung kann als voreingestellte Regeln definiert werden, die auf eine Spalte in einer Tabelle angewendet werden, damit die darin eingegebenen Daten den Anforderungen entsprechen.
Es verhindert ungültige Dateneingaben, was in der Regel ein großes Problem darstellt, insbesondere wenn Sie viele Daten in einer umfangreichen Datenbank mit mehreren Beziehungen haben. Sie können so viele Einschränkungen anwenden, wie Sie möchten, oder gar keine.
Die Einschränkung NOT NULL
ist eine besondere Einschränkung, die wir jeder Spalte in einer Tabelle hinzufügen können. Wie der Name schon sagt, verhindern Sie, dass der Eintrag in jeder Zeile dieser Spalte NULL
ist.
Dies ist besonders wichtig, wenn es um PRIMARY
-Schlüssel geht, die niemals NULL
sein können. Auch beim Aufbau von Beziehungen ist es notwendig, da diese bei NULL
-Werten nicht oder oft falsch erstellt werden können.
Sie verhindern auch, dass ein Benutzer versehentlich einen Eintrag überspringt. Fangen wir also an zu lernen, wie wir in PostgreSQL eine NOT NULL
-Einschränkung anwenden können.
Wenden Sie die Bedingung Not Null
in PostgreSQL an
Die Anwendung der Bedingung NOT NULL
ist nicht so schwierig, wie es scheinen mag. In den meisten Fällen ist es nur eine zusätzliche Codezeile. Je nach Situation können Sie eine der folgenden Methoden verwenden.
Fügen Sie beim Erstellen einer Tabelle die Einschränkung NOT NULL
hinzu
Der beste Zeitpunkt, um die Einschränkung NOT NULL
zu einer Spalte hinzuzufügen, ist während der Erstellung. Das liegt daran, dass es nur darum geht, NOT NULL
wie folgt daneben hinzuzufügen:
CREATE TABLE name(
column_1 int PRIMARY KEY,
column_2 VARCHAR (100),
column_3 VARCHAR (300) NOT NULL
);
Hier wird die Bedingung NOT NULL
zu column_3
hinzugefügt.
Fügen Sie einer bestehenden Tabelle die Bedingung NOT NULL
hinzu
Eines der vielen Dinge, die die Verwendung von PostgreSQL so einfach machen, ist, dass Sie jederzeit zusätzliche Einschränkungen hinzufügen können, selbst wenn die Tabelle bereits erstellt wurde. Sie können dies mit dem folgenden Code ausprobieren.
Erstellen Sie zunächst eine Tabelle:
CREATE TABLE users(
user_id int PRIMARY KEY,
user_name VARCHAR (100) UNIQUE,
e-mail VARCHAR (300)
);
Es wird eine Tabelle erstellt; Wenn Sie jedoch feststellen, dass Sie vergessen haben, eine Bedingung NOT NULL
hinzuzufügen, können Sie dies auf zwei Arten tun. Der erste erfordert etwas mehr Arbeit. Sie löschen zuerst die vorhandene Tabelle und erstellen eine neue, wie unten gezeigt:
DROP TABLE users;
Erstellen Sie danach die Tabelle erneut mit der Nicht-Null-Einschränkung, wie unten gezeigt:
CREATE TABLE users(
user_id int PRIMARY KEY,
user_name VARCHAR (100) UNIQUE,
e-mail VARCHAR (300) NOT NULL
);
Diese Methode funktioniert, ist aber etwas zeitaufwändig. Eine viel einfachere Alternative ist die Verwendung des Befehls ALTER TABLE
wie unten gezeigt:
ALTER TABLE users
ALTER COLUMN e-mail set not null;
Auf diese Weise wird die Einschränkung NOT NULL
in der Spalte e-mail
hinzugefügt. Außerdem müssen Sie Ihre Tabelle dafür nicht löschen.
Löschen Sie die Bedingung Not Null
in PostgreSQL
Beim Bearbeiten Ihrer Datenbank stellen Sie möglicherweise fest, dass die Bedingung NOT NULL
nicht benötigt oder falsch platziert wurde. In Zeiten wie diesen ist es notwendig zu wissen, wie man die Einschränkung NOT NULL
entfernt oder aufhebt. Hier sind einige der Möglichkeiten:
Lassen Sie die Bedingung NOT NULL
in einzelnen Spalten fallen
Wenn Sie die Einschränkung in einzelnen Spalten löschen möchten, können Sie dies ganz einfach mit demselben ALTER TABLE
-Befehl tun, aber mit einem kleinen Unterschied, da Sie die Einschränkung jetzt entfernen. Sie können dies mit dem folgenden Code erreichen:
ALTER TABLE users
ALTER COLUMN e-mail drop not null;
Sie können die Postgres-Einschränkung NOT NULL
in der Spalte e-mail
schnell löschen. Dies ist eine bessere Alternative, als die gesamte Tabelle zu löschen und erneut zu erstellen, ohne den gewünschten Spalten die Einschränkung NOT NULL
hinzuzufügen.
Lassen Sie die Bedingung NOT NULL
in mehreren Spalten fallen
Sie können den obigen Code mehrmals verwenden, wenn Sie die Einschränkung in verschiedenen Spalten löschen möchten.
ALTER TABLE users
ALTER COLUMN e-mail drop not null;
ALTER TABLE users
ALTER COLUMN new_column drop not null;
Dies kann jedoch etwas zeitaufwändig sein. Glücklicherweise bietet PostgreSQL eine Alternative, mit der wir NOT NULL
wie folgt löschen können.
ALTER TABLE users
ALTER COLUMN e-mail drop not null,
ALTER COLUMN new_column drop not null;
Auf diese Weise können Sie die Einschränkung NOT NULL
in mehreren Spalten auf einmal löschen.
Lassen Sie alle Not Null
-Constraints in PostgreSQL fallen
Die obige Methode kann hilfreich sein, wenn Sie nicht viele Spalten haben, die geändert werden müssen. Wenn Sie jedoch alle NOT NULL
-Einschränkungen aus einer Tabelle mit vielen Spalten löschen möchten, kann es schwierig sein, alle benötigten Spalten zu identifizieren.
Zu diesem Zweck können Sie den folgenden Code verwenden:
SELECT x.attname
FROM pg_catalog.pg_attribute x
WHERE attrelid = 'table_name'::regclass
AND x.attnum > 0
AND NOT x.attisdropped
AND x.attnotnull;
Es filtert alle Spalten mit einer NOT NULL
-Einschränkung heraus. Dies schließt jedoch auch PRIMARY
-Schlüssel ein, die Sie je nach Ihren Anforderungen möglicherweise ausschließen möchten.
Verwenden Sie danach den obigen Code, um Einschränkungen für alle erforderlichen Spalten zu löschen. Das ist eine einfache Methode, die PostgreSQL anbietet, um die NOT NULL
-Einschränkungen zu Spalten in einer Tabelle hinzuzufügen und zu löschen.
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub