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

Cara Mengaktifkan/Menonaktifkan Batasan CHECK di SQLite

Jika Anda perlu mengaktifkan atau menonaktifkan semua CHECK kendala dalam SQLite, Anda dapat menggunakan ignore_check_constraints Pernyataan PRAGMA.

Pernyataan pragma ini secara eksplisit mengaktifkan atau menonaktifkan penegakan CHECK kendala. Pengaturan default tidak aktif, artinya CHECK batasan diterapkan secara default.

Sintaks

Sintaksnya seperti ini:

PRAGMA ignore_check_constraints = boolean;

Dimana boolean adalah nilai boolean.

  • Untuk menonaktifkan CHECK batasan, ini dapat berupa salah satu dari berikut ini:
    • false
    • no
    • off
    • 0
  • Untuk mengaktifkan CHECK batasan, ini dapat berupa salah satu dari berikut ini:
    • true
    • yes
    • on
    • 1

Contoh

Pertama, mari kita buat tabel dengan CHECK kendala:

CREATE TABLE Products( 
    ProductId INTEGER PRIMARY KEY, 
    ProductName, 
    Price 
    CHECK (Price > 0)
);

Sekarang kita dapat mengaktifkan CHECK batasan aktif atau nonaktif sebagaimana diperlukan untuk menegakkan atau tidak menegakkan batasan tersebut.

Aktifkan PERIKSA Batasan

Berikut ini contoh mengaktifkan semua CHECK kendala:

PRAGMA ignore_check_constraints = 0;

Seperti yang disebutkan, ini adalah nilai default. Jadi jika Anda tidak menggunakan pernyataan PRAGMA ini CHECK batasan sudah akan disetel ke nilai ini.

Sekarang mari kita uji CHECK batasan sebenarnya diaktifkan dengan mencoba memasukkan data yang melanggar CHECK kendala:

INSERT INTO Products VALUES 
    (NULL, 'Blue Widget', 0.00);

Hasil:

Error: CHECK constraint failed: Products

Jadi CHECK batasan diterapkan seperti yang diharapkan.

Nonaktifkan PERIKSA Batasan

Berikut ini contoh menonaktifkan semua CHECK kendala:

PRAGMA ignore_check_constraints = 1;

Sekarang coba masukkan lagi data yang sama dan pilih hasilnya:

INSERT INTO Products VALUES 
    (NULL, 'Blue Widget', 0.00);

SELECT * FROM Products;

Hasil:

ProductId   ProductName  Price     
----------  -----------  ----------
1           Blue Widget  0.0       

Seperti yang diharapkan, data berhasil masuk ke database, meskipun melanggar CHECK kendala.


  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 mengetahui pengguna ada di Database Sqlite menggunakan android?

  2. Format Angka sebagai Mata Uang di SQLite

  3. 5 cara untuk mengimplementasikan pencarian case-insensitive di SQLite dengan dukungan Unicode penuh

  4. Pilihan SQLite

  5. SQLite Ganti Nama Kolom