„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!!