2015-01-05 1 views
-3

Каждое ограничение в SQL пытается ограничить какой-то незаконный вход. FOREIGN KEY, UNIQUE, CHECK и т. Д. Дело в том, что DEFAULT, как следует из названия, не ограничивает входное значение, а скорее «присваивает» значение, если оно не предусмотрено. Итак, как это можно было бы классифицировать как «ограничение» в SQL?Как «default» известен как «ограничение» в sql?

+0

т.к.. Какой ответ вы ожидаете? – Jodrell

+0

Не забудьте указать источник, где он так категоризирован? – mustaccio

+0

Он ограничивал бы неявные 'NULL' от использования в качестве значений, следовательно, это ограничение. –

ответ

1

Ограничение DEFAULT ограничивает вставку неявного NULL в столбец.

Это один из способов, которым он называется быть ограниченным.


Тем не менее, отметим, что в SQL-92 standard grammer элемент определение столбца «по умолчанию» является частью "default clause" и не упоминается как ограничение.

Его называют «ограничением» в конкретных реализациях поставщика, в частности Microsoft SQL Server.

Аргумент существует, для и против.

+2

Я считаю, что только неявные 'NULL' будут ограничены - явное 'NULL' будет разрешено. –

+0

вы можете установить значение NULL как значение по умолчанию для любого столбца, так что это означает, что вы не можете предотвратить это значение null, а ограничение NOT NULL является конкретным для этого использования. – HaveNoDisplayName

+0

как насчет ограничения 'NOT NULL'. – alrz

1

В целом это все о data integrity. Есть два типа целостности:

  1. целостности данных (о правильных значений в столбцах) и
  2. ссылочной целостности (об отношениях между таблицами).

Так ограничения (как MSDN says) - позволяют определить способ Database Engine автоматически следит за соблюдением целостности базы данных.

И наконец - Ограничение по умолчанию - особый тип ограничения (то есть специальный тип механизмов целостности данных), которые определяют, какие значения используются в столбце, если вы не укажете значение для столбца при вставке строки ,

Иными словами, Ограничение - это просто термин, используемый для определения механизмов обеспечения целостности базы данных. Что-то вроде этого.