日期:2014-05-18  浏览次数:20779 次

为什么主键update为空不违反not null的约束
USE School
CREATE TABLE Stu_Union(sno CHAR(5) NOT NULL UNIQUE,
  sname CHAR(8),
  ssex CHAR(1),
  sage INT,
  sdept CHAR(20),
  CONSTRAINT PK_Stu_Union PRIMARY KEY(sno) );  
insert Stu_Union values ( '10000','王敏','1',23,'CS');
UPDATE Stu_Union SET sno=' ' WHERE sdept='CS';
为什么sno置为’’没有违反NOT NULL的约束 ?

------解决方案--------------------
探讨
引用:
是的 ''和NULL不能等同的。

那为什么sno的值不是'',好像改不了,是什么原因啊??那''是什么??

------解决方案--------------------
不能修改是因为记录中主键是不能修改的吧
------解决方案--------------------
一般来说,所有的脚本和语言里 空字符串和null都是两个东西。为什么呐?
因为字符串是一个对象,内部有一个字符序列,空字符串也是一个对象,内部的序列里没有字符。
null就是空,没有对象。所以不一样。