For at slippe en tabel i SQLite skal du bruge DROP TABLE
erklæring.
Kørsel af denne sætning fjerner tabellen fra databasen. Det er fuldstændigt fjernet fra databaseskemaet og diskfilen. Derfor kan bordet ikke gendannes. Alle indekser og triggere, der er knyttet til tabellen, slettes også.
En grundlæggende DROP TABLE
Erklæring
Lad os først gennemgå tabellerne i vores database:
sqlite> .tables Albums Albums1 Albums2 Artists
Vi har et par ledige borde fra vores tidligere øvelser, så lad os droppe et.
Følgende kode sletter Albums1 tabel:
DROP TABLE Albums1;
Efter at have kørt den kode, kan vi gennemgå vores tabeller igen:
sqlite> .tables Albums Albums2 Artists
Tabellen er blevet fjernet.
Tjek, om tabellen findes
Du kan bruge koden IF EXISTS
klausul for at kontrollere, om tabellen eksisterer, før SQLite forsøger at slette den.
Ved at gøre dette forhindrer du fejl, der normalt ville blive genereret, hvis tabellen ikke eksisterer.
Lad os først prøve at droppe en ikke-eksisterende tabel uden ved at bruge IF EXISTS
klausul. Lad os prøve at droppe den, vi lige har droppet:
DROP TABLE Album1;
Dette resulterer i følgende:
sqlite> DROP TABLE Album1; Error: no such table: Album1
OK, så lad os prøve det igen, men denne gang med IF EXISTS
klausul:
DROP TABLE IF EXISTS Album1;
Resultat:
sqlite> DROP TABLE IF EXISTS Album1; sqlite>
Så der skete ikke noget. Det er vigtigt, at ingen fejl blev kastet.
Slip en tabel med primære nøgler
Så hvad sker der, hvis vi forsøger at slippe en tabel, der indeholder primærnøgler, og der er fremmednøgler, der refererer til dem?
Lad os prøve det:
DROP TABLE Artists;
Resultat:
sqlite> DROP TABLE Artists; Error: FOREIGN KEY constraint failed
Som forventet mislykkedes det. Så hvis du har brug for at droppe en tabel, skal du først droppe alle tilknyttede tabeller.
SQLite forsøger faktisk at slette dataene, før den taber en tabel. Det er denne sletningshandling, der får enhver kontrol af fremmednøglebegrænsninger til at finde sted.
SQLite sletter også alle indekser eller triggere, der er knyttet til tabellen, før den udfører sletningsoperationen (og efterfølgende slip).