SQLite
 sql >> база данни >  >> RDS >> SQLite

SQLite NOT NULL ограничение

Резюме :в този урок ще научите как да използвате SQLite NOT NULL ограничение, за да се гарантира, че стойностите в колона не са NULL .

Въведение в SQLite NOT NULL ограничение

Когато създавате таблица, можете да посочите дали колона приема NULL стойности или не. По подразбиране всички колони в таблицата приемат NULL стойности, освен че изрично използвате NOT NULL ограничения.

За да дефинирате NOT NULL ограничение за колона, използвате следния синтаксис:

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

За разлика от други ограничения като PRIMARY KEY и CHECK , можете да дефинирате само NOT NULL ограничения на ниво колона, а не на ниво таблица.

Въз основа на SQL стандарта, PRIMARY KEY винаги трябва да означава NOT NULL . Въпреки това SQLite позволява NULL стойности в PRIMARY KEY колона, с изключение на това, че една колона е INTEGER PRIMARY KEY колона или таблицата е WITHOUT ROWID таблицата или колоната се дефинира като NOT NULL колона.

Това се дължи на грешка в някои ранни версии. Ако тази грешка бъде коригирана, за да съответства на стандарта SQL, тогава може да наруши наследените системи. Поради това беше решено да се разреши NULL стойности в PRIMARY KEY колона.

Веднъж NOT NULL ограничението е прикрепено към колона, всеки опит да се зададе стойността на колоната на NULL като вмъкване или актуализиране ще доведе до нарушение на ограничението.

SQLite NOT NULL пример за ограничение

Следващият пример създава нова таблица с име suppliers :

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

В този пример supplier_id е PRIMARY KEY колона на suppliers маса. Тъй като тази колона е декларирана като INTEGER PRIMARY KEY , няма да приеме NULL стойности.

name колоната също е декларирана с NOT NULL ограничение, така че ще приема само стойности, различни от NULL.

Следното изявление се опитва да вмъкне NULL в name колона на suppliers таблица:

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

Изявлението е неуспешно поради NOT NULL нарушение на ограничението. Ето съобщението за грешка:

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

В този урок научихте как да използвате SQLite NOT NULL ограничение, за да се гарантира, че стойностите в колона не са 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. Как да разберете, че потребителят присъства в Sqlite база данни с помощта на android?

  2. SQLite Node.js

  3. SQLite Intersect

  4. Ще се влоши ли производителността на SQLite, ако размерът на базата данни е по-голям от 2 гигабайта?

  5. Как да получите SQLite db стойности в Arraylist към Listview