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

Batasan SQLite NOT NULL

Ringkasan :dalam tutorial ini, Anda akan mempelajari cara menggunakan SQLite NOT NULL batasan untuk memastikan nilai dalam kolom tidak NULL .

Pengantar SQLite NOT NULL kendala

Saat membuat tabel, Anda dapat menentukan apakah kolom menerimaNULL nilai atau tidak. Secara default, semua kolom dalam tabel menerima NULL nilai kecuali Anda secara eksplisit menggunakan NOT NULL kendala.

Untuk menentukan NOT NULL kendala untuk kolom, Anda menggunakan sintaks berikut:

CREATE TABLE table_name (
    ...,
    column_name type_name NOT NULL,
    ...
);
Code language: SQL (Structured Query Language) (sql)

Tidak seperti batasan lain seperti PRIMARY KEY dan CHECK , Anda hanya dapat menentukan NOT NULL kendala di tingkat kolom, bukan tingkat tabel.

Berdasarkan standar SQL, PRIMARY KEY harus selalu menyiratkan NOT NULL . Namun, SQLite mengizinkan NULL nilai dalam PRIMARY KEY kolom kecuali kolom tersebut adalah INTEGER PRIMARY KEY kolom atau tabel adalah WITHOUT ROWID tabel atau kolom didefinisikan sebagai NOT NULL kolom.

Ini karena bug di beberapa versi awal. Jika bug ini diperbaiki agar sesuai dengan standar SQL, maka mungkin merusak sistem lama. Oleh karena itu, telah diputuskan untuk mengizinkan NULL nilai dalam PRIMARY KEY kolom.

Sekali NOT NULL kendala dilampirkan ke kolom, setiap upaya untuk mengatur nilai kolom ke NULL seperti menyisipkan atau memperbarui akan menyebabkan pelanggaran batasan.

SQLite NOT NULL contoh kendala

Contoh berikut membuat tabel baru bernama suppliers :

CREATE TABLE suppliers(
    supplier_id INTEGER PRIMARY KEY,
    name TEXT NOT NULL
);
Code language: SQL (Structured Query Language) (sql)

Dalam contoh ini, supplier_id adalah PRIMARY KEY kolom suppliers meja. Karena kolom ini dideklarasikan sebagai INTEGER PRIMARY KEY , itu tidak akan menerima NULL nilai.

name kolom juga dideklarasikan dengan NOT NULL kendala, sehingga hanya akan menerima nilai non-NULL.

Pernyataan berikut mencoba memasukkan NULL ke dalam name kolom suppliers tabel:

INSERT INTO suppliers(name)
VALUES(NULL);
Code language: SQL (Structured Query Language) (sql)

Pernyataan gagal karena NOT NULL pelanggaran kendala. Berikut adalah pesan kesalahannya:

SQL Error [19]: [SQLITE_CONSTRAINT]  Abort due to constraint violation (NOT NULL constraint failed: suppliers.name)Code language: CSS (css)

Dalam tutorial ini, Anda telah mempelajari cara menggunakan SQLite NOT NULL kendala untuk memastikan nilai dalam kolom tidak NULL.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara menginstal versi terbaru dari Sqlite aar saat menggunakan Room Di Android

  2. SQLite JSON()

  3. SQLite SUBSTRING() Dijelaskan

  4. SQLite MAX

  5. Cara Menghitung Perbedaan Antara Dua Timestamp di SQLite