sql >> Databáze >  >> RDS >> SQLite

SQLite - Pusťte tabulku

Chcete-li zrušit tabulku v SQLite, použijte DROP TABLE prohlášení.

Spuštění tohoto příkazu odebere tabulku z databáze. Je zcela odstraněn ze schématu databáze a souboru na disku. Proto nelze tabulku obnovit. Všechny indexy a spouštěče přidružené k tabulce jsou také odstraněny.

Základní DROP TABLE Prohlášení

Nejprve si projdeme tabulky v naší databázi:

sqlite> .tables
Albums   Albums1  Albums2  Artists

Máme pár volných stolů z našich předchozích cvičení, takže jeden zahodíme.

Následující kód odstraní Albums1 tabulka:

DROP TABLE Albums1;

Po spuštění tohoto kódu můžeme znovu zkontrolovat naše tabulky:

sqlite> .tables
Albums   Albums2  Artists

Tabulka byla odstraněna.

Zkontrolujte, zda tabulka existuje

Můžete použít IF EXISTS klauzule ke kontrole, zda tabulka existuje, než se ji SQLite pokusí zrušit.

Tím zabráníte chybám, které by se normálně vygenerovaly, pokud tabulka neexistuje.

Nejprve zkusme zahodit neexistující tabulku bez pomocí IF EXISTS doložka. Zkusme zahodit ten, který jsme právě upustili:

DROP TABLE Album1;

Výsledkem je následující:

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

Dobře, tak to zkusíme znovu, ale tentokrát s IF EXISTS klauzule:

DROP TABLE IF EXISTS Album1;

Výsledek:

sqlite> DROP TABLE IF EXISTS Album1;
sqlite> 

Takže se nic nestalo. Důležité je, že nebyla vyvolána žádná chyba.

Vypustit tabulku s primárními klíči

Co se tedy stane, když se pokusíme zrušit tabulku, která obsahuje primární klíče a na ně odkazují cizí klíče?

Zkusme to:

DROP TABLE Artists;

Výsledek:

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

Podle očekávání se to nepodařilo. Pokud tedy potřebujete zrušit tabulku, budete muset nejprve zrušit všechny související tabulky.

SQLite se ve skutečnosti pokouší smazat data předtím, než vypustí tabulku. Je to tato akce odstranění, která způsobí provedení jakýchkoli kontrol omezení cizího klíče.

SQLite také zruší všechny indexy nebo spouštěče spojené s tabulkou předtím, než provede operaci odstranění (a následné odstranění).


  1. Existuje způsob, jak zobrazit klauzuli WHERE pouze pro jedno pole v MySQL?

  2. Oficiální technický blog Microsoft Access je nyní online!

  3. Příklady COS() v SQL Server

  4. Připojte se k mysql v kontejneru dockeru z hostitele