"默认"被称为"约束"在sql?

时间:2015-01-05 15:57:10

标签: sql constraints

SQL中的每个约束都试图限制某种非法输入。 FOREIGN KEYUNIQUECHECK等 问题是,DEFAULT,顾名思义,并不限制输入值,而是指定"指定"如果没有提供,则为该值。那么它怎么可能被归类为"约束"在SQL?

2 个答案:

答案 0 :(得分:1)

DEFAULT约束,限制将隐式NULL插入到列中。

这是一种被称为约束的方式。


但请注意,在SQL-92 standard grammer' DEFAULT'列定义元素是"default clause"的一部分,不称为约束。

它被称为"约束"在供应商特定的实现中,特别是Microsoft SQL Server。

争论存在,赞成和反对。

答案 1 :(得分:1)

一般来说,这都是data integrity。有两种类型的完整性:

  1. 数据完整性(关于列中的正确值)和
  2. 参照完整性(关于表之间的关系)。
  3. 所以约束(作为MSDN says) - 让您定义数据库引擎自动强制执行数据库完整性的方式。

    最后 - 默认约束是一种特殊类型的约束(即特殊类型的数据完整性机制),如果您未指定列的值,则指定列中使用的值你插入一行。

    换句话说,约束只是一个用于定义确保数据库完整性的机制的术语。这样的事情。