在数据库中,参照完整性违约处理中有拒绝处理、级联修改、设为空值三种方法,那设置空值是如何定义的?

在数据库中,参照完整性违约处理中有拒绝处理、级联修改、设为空值三种方法,那设置空值是如何定义的?,第1张

在数据库中,参照完整性违约处理中有拒绝处理、级联修改、设为空值三种方法,那设置空值是如何定义的:

这个是要自己定义的,自己写很麻烦,

下面是我用SQL SERVER逆向生成的代码,你可以看一下.

USE [stu]

GO

/****** 对象:  Table [dbo].[student]    脚本日期: 03/10/2011 14:52:53 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[student](

[id] [int] NOT NULL,

[did] [int] NULL,

CONSTRAINT [PK_student] PRIMARY KEY CLUSTERED

(

[id] ASC

)WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

GO

ALTER TABLE [dbo].[student]  WITH CHECK ADD  CONSTRAINT [FK_student_dd] FOREIGN KEY([did])

REFERENCES [dbo].[dd] ([Did])

ON UPDATE SET NULL

ON DELETE SET NULL

GO

ALTER TABLE [dbo].[student] CHECK CONSTRAINT [FK_student_dd]

在数据库系统中,空值是(什么也没有)。

解释:

所谓的NULL就是什么都没有,连\0都没有,\0在字符串中是结束符,但是在物理内存是占空间的,等于一个字节,而NULL就是连这一个字节都没有。在数据库里是严格区分的,任何数跟NULL进行运算都是NULL, 判断值是否等于NULL,不能简单用=,而要用IS关键字。

空 (NULL)

值表示数值未知(在实际意义中,如果使用null,就是代表变量值是未知的,比如手机号码设为null,说明不知道手机号码是什么)。空值不同于空白或零值。没有两个相等的空值。比较两个空值或将空值与任何其它数值相比均返回未知,这是因为每个空值均为未知。

在写入数据的时候,空字符串也是一个确定的值,所以就算定义了 NOT NULL 也可以被写入。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6758582.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存