SQLite
 sql >> Datenbank >  >> RDS >> SQLite

SQLite - Löschen Sie eine Tabelle

Um eine Tabelle in SQLite zu löschen, verwenden Sie DROP TABLE Aussage.

Durch Ausführen dieser Anweisung wird die Tabelle aus der Datenbank entfernt. Es wird vollständig aus dem Datenbankschema und der Plattendatei entfernt. Daher kann die Tabelle nicht wiederhergestellt werden. Alle mit der Tabelle verknüpften Indizes und Trigger werden ebenfalls gelöscht.

Eine grundlegende DROP TABLE Erklärung

Sehen wir uns zuerst die Tabellen in unserer Datenbank an:

sqlite> .tables
Albums   Albums1  Albums2  Artists

Wir haben ein paar freie Tabellen aus unseren vorherigen Übungen, also lassen Sie uns eine fallen.

Der folgende Code löscht Albums1 Tabelle:

DROP TABLE Albums1;

Nachdem wir diesen Code ausgeführt haben, können wir unsere Tabellen erneut überprüfen:

sqlite> .tables
Albums   Albums2  Artists

Die Tabelle wurde entfernt.

Überprüfen Sie, ob die Tabelle existiert

Sie können den IF EXISTS verwenden -Klausel, um zu prüfen, ob die Tabelle existiert, bevor SQLite versucht, sie zu löschen.

Dadurch werden Fehler vermieden, die normalerweise generiert würden, wenn die Tabelle nicht existiert.

Versuchen wir zunächst, eine nicht vorhandene Tabelle ohne zu löschen mit dem IF EXISTS Klausel. Lassen Sie uns versuchen, das zu löschen, was wir gerade gelöscht haben:

DROP TABLE Album1;

Daraus ergibt sich Folgendes:

sqlite> DROP TABLE Album1;
Error: no such table: Album1

OK, also versuchen wir es noch einmal, aber diesmal mit dem IF EXISTS Klausel:

DROP TABLE IF EXISTS Album1;

Ergebnis:

sqlite> DROP TABLE IF EXISTS Album1;
sqlite> 

Es ist also nichts passiert. Wichtig, es wurde kein Fehler ausgegeben.

Lösche eine Tabelle mit Primärschlüsseln

Was passiert also, wenn wir versuchen, eine Tabelle zu löschen, die Primärschlüssel enthält, und es gibt Fremdschlüssel, die darauf verweisen?

Versuchen wir es:

DROP TABLE Artists;

Ergebnis:

sqlite> DROP TABLE Artists;
Error: FOREIGN KEY constraint failed

Wie erwartet scheiterte es. Wenn Sie also eine Tabelle löschen müssen, müssen Sie zuerst alle zugehörigen Tabellen löschen.

SQLite versucht tatsächlich, die Daten zu löschen, bevor es eine Tabelle löscht. Es ist diese Löschaktion, die bewirkt, dass alle Fremdschlüssel-Einschränkungsprüfungen stattfinden.

SQLite löscht auch alle Indizes oder Trigger, die der Tabelle zugeordnet sind, bevor es den Löschvorgang (und den anschließenden Löschvorgang) ausführt.