SQL中的每个约束都试图限制某种非法输入。 FOREIGN KEY
,UNIQUE
,CHECK
等
问题是,DEFAULT
,顾名思义,并不限制输入值,而是指定"指定"如果没有提供,则为该值。那么它怎么可能被归类为"约束"在SQL?
答案 0 :(得分:1)
DEFAULT
约束,限制将隐式NULL
插入到列中。
这是一种被称为约束的方式。
但请注意,在SQL-92 standard grammer' DEFAULT'列定义元素是"default clause"的一部分,不称为约束。
它被称为"约束"在供应商特定的实现中,特别是Microsoft SQL Server。
争论存在,赞成和反对。
答案 1 :(得分:1)
一般来说,这都是data integrity。有两种类型的完整性:
所以约束(作为MSDN says) - 让您定义数据库引擎自动强制执行数据库完整性的方式。
最后 - 默认约束是一种特殊类型的约束(即特殊类型的数据完整性机制),如果您未指定列的值,则指定列中使用的值你插入一行。
换句话说,约束只是一个用于定义确保数据库完整性的机制的术语。这样的事情。