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.