【发布时间】:2019-04-13 03:52:49
【问题描述】:
对于下表:
CREATE TABLE Sucursal
(
DscSucursal VARCHAR(20),
DirSucursal VARCHAR(25)
);
我想在第一列添加NOT NULL 约束。
据此来源:https://www.tutorialspoint.com/sql/sql-alter-command.htm
我必须告诉约束列的数据类型。为什么?
数据类型已在表创建时定义。为什么我必须告诉约束数据类型?这不是多余的吗?
"ALTER TABLE 命令向表中的列添加 NOT NULL 约束的基本语法如下:"
ALTER TABLE table_name
MODIFY column_name datatype NOT NULL;
【问题讨论】:
-
嗯,我不知道那些定义它的人是怎么想的……但从某个角度来看,这只是合乎逻辑的。也就是说,如果您考虑将数据类型视为属性的可能值集。如果有一个非空约束,它会少一个值——
NULL——否则它被包含在内。 -
您使用的是哪个DBMS 产品? “SQL”只是一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加标签
postgresql、oracle、db2、sql-server、... -
@marc_s:这对于某些 DBMS 可能是正确的,但例如对于 Postgres 或 Oracle,您不需要重复数据类型(并且标签“SQL”没有指定具体的 DBMS)
-
a_horse_with_no_name sql-server
标签: sql sql-server