PostgreSQL Cascade Löschen

PostgreSQL Cascade Löschen

„Wenn Sie mit Postgresql -Datenbanken arbeiten, werden Sie auf Instanzen begegnen, in denen Sie Datensätze aus einer Tabelle fallen lassen müssen. Bevor Sie eine Löschabfrage ausführen, ist es wichtig sicherzustellen, dass die Tabelle keine unvollständigen Beziehungen zwischen Tabellen hinterlassen.

In PostgreSQL können wir die Funktion Cascade Delete verwenden, um dies zu erreichen. Diese Funktion ermöglicht es in einem Löschvorgang, die angegebenen Datensätze und fremden Schlüsseln zu entfernen, die auf sie hinweisen.

Mit diesem Artikel werden wir überprüfen.”

PostgreSQL Cascade Löschen

Die Feature der Kaskade -Löschung ist sehr einfach. Es stellt sicher, dass das Löschen von übergeordneten Unterlagen auch die untergeordneten Datensätze beseitigt. Um nicht versehentlich unterschriebene Aufzeichnungen zu entfernen, können Sie die ausländischen Schlüsselbeschränkungen in der übergeordneten Tabelle auf Null setzen.

Lassen Sie uns sehen, wie wir das erreichen können.

Stellen Sie mit der Einrichtung einer Beispieldatenbank. Führen Sie in Ihrem PSQL -Dienstprogramm den Befehl aus:

1
2
3
4
5
6
7
8
Datenbank erstellen "CASCADE_DELETE_DB;"
MIT
Besitzer = Postgres
Coding = 'utf8'
LC_COLLATE = 'C'
LC_CTYPE = 'C'
Tablespace = pg_default
Verbindungsgrenze = -1;

Wechseln Sie nach dem Erstellen zu dieser Datenbank, indem Sie den Befehl ausführen:

1
\ c Cascade_delete_db;

Erstellen wir als nächstes die übergeordnete Tabelle, indem wir die Abfrage ausführen:

1
2
3
4
5
6
7
Tabellenbenutzer erstellen (Benutzer
id serielle Primärschlüssel,
full_name varchar (100),
E -Mail Varchar (255),
Land Varchar (50),
Abteilung_foreign_key int nicht null
);

Als nächstes können wir die untergeordnete Tabelle erstellen wie:

1
2
3
4
Tabellenabteilung erstellen (
User_id Serial Primärschlüssel,
Abteilungsvarchar (50)
);

Als nächstes müssen wir der übergeordneten Tabelle eine fremde Schlüsselbeschränkung hinzufügen, wie in dem folgenden Befehl gezeigt:

1
2
TABLE -Benutzer addieren Sie den Fremdenschlüssel (Abteilung_foreign_key)
Referenzen Abteilung (user_id) auf Löschen von Kaskade;

Wir können jetzt einige Beispieldaten wie gezeigt in die Tabellen einfügen:

1
2
3
4
5
6
7
8
In die Abteilungswerte (Abteilung) einfügen
('Spielentwicklung'),
('Dev-Ops'),
('Backend-dev');
Einfügen in Benutzer (Full_Name, E -Mail, Land, Abteilung_Foreign_Key) Werte
('Alley K', '[email protected] ',' us ', 1),
('Kaspa V', '[email protected] ',' ca ', 2),
('Dev.W ',' [email protected] ',' af ', 3);

Wir können dann die Tabellen abfragen als:

1
Wählen Sie * von Benutzern aus;

Dies sollte die Tabelle zurückgeben:

Aus der Tabelle der Abteilung können wir rennen:

1
Aus der Abteilung auswählen;

Die resultierende Tabelle:

Sobald alle Beispieldaten fertig sind, können wir einen Kaskaden -Löschung ausführen, wie in der folgenden Abfrage gezeigt:

1
Aus der Abteilung löschen, wobei Abteilung = 'Dev-Ops';

In der obigen Anweisung verwenden wir die normale Löschabfrage, um einen Datensatz zu entfernen, in dem die Abteilung gleich „Dev-Ops ist.Da wir den Kaskade -Löschen festlegen, können wir die Tabelle der Benutzer überprüfen, um zu überprüfen.

1
Wählen Sie * von Benutzern aus;

Wir können sehen, dass sich nur zwei Datensätze in der Tabelle der Benutzer befinden, obwohl wir den Datensatz aus der Tabelle der Abteilungen entfernt haben.

Herzlichen Glückwunsch, Sie haben gelernt, wie man eine Kaskade in PostgreSQL ausführt.

Beendigung

In diesem Tutorial wurden Sie beigebracht.

Danke fürs Lesen!!