SQLite
 sql >> Baza danych >  >> RDS >> SQLite

SQLite NOT NULL Ograniczenie

Podsumowanie :w tym samouczku dowiesz się, jak używać SQLite NOT NULL ograniczenie zapewniające, że wartości w kolumnie nie są NULL .

Wprowadzenie do SQLite NOT NULL ograniczenie

Podczas tworzenia tabeli możesz określić, czy kolumna akceptuje wartość NULL wartości, czy nie. Domyślnie wszystkie kolumny w tabeli akceptują NULL wartości, z wyjątkiem tego, że jawnie używasz NOT NULL ograniczenia.

Aby zdefiniować NOT NULL ograniczenie dla kolumny, użyj następującej składni:

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

W przeciwieństwie do innych ograniczeń, takich jak PRIMARY KEY i CHECK , możesz zdefiniować tylko NOT NULL ograniczenia na poziomie kolumny, a nie na poziomie tabeli.

Oparty na standardzie SQL, PRIMARY KEY powinno zawsze oznaczać NOT NULL . Jednak SQLite pozwala na NULL wartości w PRIMARY KEY kolumna z wyjątkiem tego, że kolumna to INTEGER PRIMARY KEY kolumna lub tabela jest WITHOUT ROWID tabela lub kolumna jest zdefiniowana jako NOT NULL kolumna.

Wynika to z błędu w niektórych wczesnych wersjach. Jeśli ten błąd zostanie naprawiony tak, aby był zgodny ze standardem SQL, może to spowodować uszkodzenie starszych systemów. Dlatego zdecydowano się zezwolić na NULL wartości w PRIMARY KEY kolumna.

Po NOT NULL ograniczenie jest dołączone do kolumny, każda próba ustawienia wartości kolumny na NULL takie jak wstawianie lub aktualizowanie spowoduje naruszenie ograniczenia.

SQLite NOT NULL przykład ograniczenia

Poniższy przykład tworzy nową tabelę o nazwie suppliers :

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

W tym przykładzie supplier_id to PRIMARY KEY kolumna suppliers stół. Ponieważ ta kolumna jest zadeklarowana jako INTEGER PRIMARY KEY , nie zaakceptuje NULL wartości.

name kolumna jest również zadeklarowana z NOT NULL ograniczenie, więc zaakceptuje tylko wartości inne niż NULL.

Poniższa instrukcja próbuje wstawić NULL w name kolumna suppliers tabela:

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

Instrukcja nie powiedzie się z powodu NOT NULL naruszenie ograniczenia. Oto komunikat o błędzie:

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

W tym samouczku nauczyłeś się korzystać z SQLite NOT NULL ograniczenie zapewniające, że wartości w kolumnie nie są 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. Co to jest SQLite?

  2. Jak działa SQLite Avg()

  3. 5 sposobów na sprawdzenie typu danych kolumny w SQLite

  4. Pokój z Androidem - Jak wyczyścić sqlite_sequence dla wszystkich tabel

  5. przechowuj długą wartość w bazie danych Androida