sql >> Database teknologi >  >> RDS >> SQLite

SQLite - Slip en tabel

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).


  1. Brug af SQL LIKE og IN sammen

  2. Hvordan udfører man en SQLite-forespørgsel i en Android-applikation?

  3. Dræb en postgresql-session/forbindelse

  4. Sådan installeres og konfigureres phpMyAdmin på CentOS 6