Ce face DROP TABLE
DROP TABLE elimină tabelul cu totul: structura și datele. Nu există coș de gunoi; singura cale de întoarcere este un backup sau o tranzacție neconfirmată (în PostgreSQL, DROP TABLE poate fi anulat cu ROLLBACK dacă rulează într-un BEGIN).
Dacă alte obiecte depind de tabel (un view, o cheie străină din alt tabel), comanda se oprește. Cu CASCADE, PostgreSQL șterge și obiectele dependente: view-urile dispar, iar cheile străine sunt eliminate din celelalte tabele (datele lor rămân).
Dacă vrei doar să golești tabelul și să păstrezi structura, folosește TRUNCATE sau DELETE.
Parametri
| Parametru | Descriere |
|---|---|
IF EXISTS |
Nu dă eroare dacă tabelul nu există; afișează un NOTICE. |
CASCADE |
Șterge și obiectele care depind de tabel. |
RESTRICT |
Implicit. Refuză ștergerea dacă există obiecte dependente. |
Ce returnează
Mesajul DROP TABLE.
Exemple
Exemplul 1: Tabel de care depind alte obiecte
Tabelul comenzi are o cheie străină spre clienti.
DROP TABLE clienti;
DROP TABLE clienti CASCADE;
Rezultat în psql
ERROR: cannot drop table clienti because other objects depend on it
DETAIL: constraint comenzi_client_id_fkey on table comenzi depends on table clienti
HINT: Use DROP ... CASCADE to drop the dependent objects too.
NOTICE: drop cascades to constraint comenzi_client_id_fkey on table comenzi
DROP TABLE
Exemplul 2: Ștergere sigură într-un script
DROP TABLE IF EXISTS import_temporar;
Rezultat în psql
NOTICE: table "import_temporar" does not exist, skipping
DROP TABLE
Exemplul 3: Anulare cu ROLLBACK
BEGIN;
DROP TABLE produse;
ROLLBACK;
SELECT count(*) FROM produse;
Rezultat în psql
BEGIN
DROP TABLE
ROLLBACK
count
-------
128
(1 row)
Greșeli frecvente
- Folosești
CASCADEfără să citești ce va șterge. Rulează mai întâi fărăCASCADE: mesajulDETAILlistează obiectele dependente. - Rulezi comanda conectat la baza de date greșită (producție în loc de test). Verifică promptul psql sau
SELECT current_database();.
Comenzi înrudite
CREATE TABLE: Creează un tabel nou, cu coloane, tipuri de date și constrângeri: PRIMARY KEY, NOT NULL, UNIQUE, CHECK, DEFAULT, FOREIGN KEY.ALTER TABLE: Modifică un tabel existent: adaugă, șterge sau redenumește coloane, schimbă tipul, valoarea implicită și constrângerile.