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

Jak zkontrolovat, zda existuje tabulka v SQLite

V SQLite se můžeme dotazovat na sqlite_schema tabulky, abyste zjistili, zda daná tabulka existuje.

Před verzí SQLite 3.33.0 byla tato tabulka označována jako sqlite_master (může být stále takto označován v následujících vydáních kvůli zpětné kompatibilitě).

Příklad

Zde je příklad k demonstraci:

SELECT EXISTS (
    SELECT 
        name
    FROM 
        sqlite_schema 
    WHERE 
        type='table' AND 
        name='Customers'
    );

Výsledek:

1

V tomto případě tabulka existuje a 1 je vráceno.

Zde je příklad toho, co se stane, když tabulka neexistuje:

SELECT EXISTS (
    SELECT 
        name
    FROM 
        sqlite_schema 
    WHERE 
        type='table' AND 
        name='Inventory'
    );

Výsledek:

0

sqlite_master Tabulka

Stejný dotaz lze spustit pomocí sqlite_master místo sqlite_schema :

SELECT EXISTS (
    SELECT 
        name
    FROM 
        sqlite_master 
    WHERE 
        type='table' AND 
        name='Customers'
    );

Výsledek:

1

Můžete také použít sqlite_temp_schema nebo sqlite_temp_master , ale tyto fungují pouze pro TEMP databáze přidružená ke každému připojení databáze.


  1. SQL dotaz pro rozdělení dat sloupců do řádků

  2. Jak naplánovat zálohování databáze pomocí ClusterControl

  3. Správný způsob implementace jedinečného omezení, které umožňuje více hodnot NULL v SQL Server

  4. Klauzule Oracle DateTime in Where?