SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

Cara Membuat Tabel Hanya jika Tidak Ada di SQLite

Di SQLite, Anda dapat menggunakan IF NOT EXISTS klausa dari CREATE TABLE pernyataan untuk memeriksa apakah tabel atau tampilan dengan nama yang sama sudah ada di database sebelum membuatnya.

Membuat tabel tanpa klausa ini biasanya akan menghasilkan kesalahan jika tabel dengan nama yang sama sudah ada di database. Tetapi saat menggunakan IF NOT EXISTS klausa, pernyataan tidak berpengaruh jika tabel sudah ada dengan nama yang sama.

Contoh

Berikut ini contoh untuk didemonstrasikan:

CREATE TABLE IF NOT EXISTS t1 (
  c1 INT,
  c2 VARCHAR(10)
);

Di sini, t1 adalah nama tabel, dan semua yang berada di antara tanda kurung adalah definisi tabel (yaitu kolom, dll).

Dalam hal ini, tabel hanya akan dibuat jika belum ada tabel atau tampilan yang disebut t1 .

Periksa bahwa Tabel Sekarang Sudah Ada

Kita dapat menanyakan sqlite_schema tabel untuk memeriksa apakah tabel tersebut sekarang ada:

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

Hasil:

1

Dalam hal ini saya mendapatkan 1 , yang berarti bahwa tabel tersebut memang ada.

Coba Buat Tabel Lagi

Jika kita mencoba membuat tabel itu lagi:

CREATE TABLE IF NOT EXISTS t1 (
  c1 INT,
  c2 VARCHAR(10)
);

Kami tidak mendapatkan kesalahan:

sqlite> CREATE TABLE IF NOT EXISTS t1 (
  c1 INT,
  c2 VARCHAR(10)
);
sqlite> 

Kami tidak mendapatkan apa-apa.

Tanpa IF NOT EXISTS Klausa

Inilah yang terjadi jika kita tidak menggunakan IF NOT EXISTS klausa ketika mencoba membuat tabel yang sudah ada:

CREATE TABLE t1 (
  c1 INT,
  c2 VARCHAR(10)
);

Kali ini kami mendapatkan kesalahan:

Error: table t1 already exists

Perhatikan bahwa IF NOT EXISTS klausa tidak memeriksa struktur/definisi tabel. Ini hanya memeriksa bahwa tidak ada tabel atau tampilan yang ada dengan nama yang sama yang kami coba berikan ke tabel yang kami buat.

Dengan kata lain, hanya karena tabel dengan nama itu sudah ada, bukan berarti ia memiliki definisi yang benar.

Juga, kesalahan masih ditampilkan jika tabel tidak dapat dibuat karena indeks yang ada, meskipun IF NOT EXISTS klausa ditentukan.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengatur teks ke tombol secara acak dari SQLite tanpa pengulangan?

  2. Menyimpan konfigurasi di android

  3. Android ListView:bagaimana cara menghindari kueri basis data di bindView ()? Perlu mengambil satu ke banyak data hubungan

  4. Ruang Android - Cara mengatur ulang kunci utama tabel yang dibuat secara otomatis pada setiap aplikasi yang dijalankan

  5. Android Mendorong Pembaruan di Play Store