Postgresql Cascade Usuń

Postgresql Cascade Usuń

„Pracując z bazami danych PostgreSQL, napotkasz instancje, w których musisz usunąć rekordy z tabeli. Przed uruchomieniem zapytania usuń ważne jest, aby stół nie pozostawił żadnych niepełnych relacji między tabelami.

W PostgreSQL możemy użyć funkcji Cascade Delete, aby to osiągnąć. Ta funkcja pozwala na usunięcie operacji usunięcia określonych rekordów i wszelkich klawiszy obcych, które odwołują się do nich.

Korzystając z tego artykułu, przejrzymy sposób wykonania usunięcia kaskady w PostgreSQL."

Postgresql Cascade Usuń

Funkcja usuwania kaskady jest bardzo prosta. Zapewnia, że ​​usunięcie dowolnych rekordów nadrzędnych usuwa również rekordy dziecka. Aby uniknąć przypadkowego usuwania rekordów dziecka, możesz ustawić ograniczenia kluczowe w tabeli nadrzędnej na null.

Zobaczmy, jak możemy to osiągnąć.

Zacznij od skonfigurowania przykładowej bazy danych. W swoim narzędzie PSQL uruchom polecenie:

1
2
3
4
5
6
7
8
Utwórz bazę danych „Cascade_delete_db;”
Z
Właściciel = Postgres
Kodowanie = „utf8”
Lc_collate = 'c'
LC_CTYPE = „C”
Tabilespace = pg_default
Limit połączenia = -1;

Po utworzeniu przejdź do tej bazy danych, uruchamiając polecenie:

1
\ c cascade_delete_db;

Następnie utwórzmy tabelę nadrzędną, uruchamiając zapytanie:

1
2
3
4
5
6
7
Utwórz użytkowników tabeli (
ID szeregowy klucz podstawowy,
Full_name Varchar (100),
e -mail varchar (255),
Country Varchar (50),
DEARD_FOFOFORIGN_KEY INT NOT NULL
);

Następnie możemy utworzyć tabelę dziecka jako:

1
2
3
4
Utwórz dział tabeli (
User_id Serial Key Key,
Departament Varchar (50)
);

Następnie musimy dodać ograniczenie klucza obce do tabeli nadrzędnej, jak pokazano w poniższym poleceniu:

1
2
Zmieniają użytkowników tabeli Dodaj zagraniczny klucz (Department_Foreign_Key)
REFERENCJE DZIAŁ (user_id) na delete Cascade;

Możemy teraz wstawić niektóre przykładowe dane do tabel, jak pokazano:

1
2
3
4
5
6
7
8
Wstaw do wartości działu (dział)
('PRODUKCJA GIER'),
(„Dev-up”),
(„Backend-dev”);
Wstaw do użytkowników (Full_name, e -mail, kraj, Departament_Foreign_Key) Wartości
(„Alley K”, „[email protected] ', „us”, 1),
(„Kaspa v”, „[email protected] ', „CA”, 2),
(„Dev.W ',' [email protected] ', „af”, 3);

Następnie możemy zapytać o tabele jako:

1
Wybierz * od użytkowników;

To powinno zwrócić tabelę:

Z tabeli działu możemy uruchomić:

1
Wybierz * z działu;

Wynikowy stół:

Po przygotowaniu wszystkich przykładowych danych możemy wykonać usuwanie kaskady, jak pokazano w pytaniu poniżej:

1
Usuń z działu, w którym dział = „dev-up”;

W powyższym stwierdzeniu używamy normalnego zapytania o usunięcie, aby usunąć zapis, w którym dział jest równy „dev-ups.”Ponieważ ustawiamy usunięcie kaskady, możemy sprawdzić tabelę użytkowników, aby zweryfikować użytkownika z upuszczeniem Department_Foreign_Key z 2.

1
Wybierz * od użytkowników;

Widzimy, że w tabeli użytkowników znajdują się tylko dwa rekordy, mimo że usunęliśmy rekord ze stolika działów.

Gratulacje, nauczyłeś się wykonywać kaskadę usuwania w PostgreSql.

Zakończenie

Ten samouczek nauczył Cię, jak połączyć dwa tabele za pomocą klawisza obcego i ustawić funkcję usuwania kaskadowego.

Dziękuje za przeczytanie!!