sql基础知识-----主外键、参照完整性

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"><span style="font-size:18px;">1.主键、外键------参照完整性</span></span>

表A 的主键是表B 的中的字段,这个字段就是表B 的外键,而参照完整性也是由此而来。

其实很好理解,字需要去建两张表,按照上面的条件

<span style="font-size:18px;">CREATE TABLE Stores
(
	StoreCode char(4) NOT null primary key,
	Name varchar(40) not null ,
	Address varchar(40) null,
	City varchar(40) not null,
	State char(2) not null,
	zip char(5) not null
);
CREATE TABLE Sales
(
	OrderNumber varchar(20) not null,
	StoreCODE CHAR(4) NOT NULL FOREIGN KEY REFERENCES Stores(StoreCode),
	OrderDate date not null,
	Quantity int not null ,
	terms varchar(12) not null,
	TitleID int NOT NULL,
);

INSERT INTO Stores VALUES
('TEST ','TEST Store','1234 Anywhere street','here','NY','00319');

INSERT INTO Stores 
(StoreCode ,Name ,City ,State ,zip )
values 
('TET2','Test Store ','Here','NY ','00319');</span>
代码到这里是没错的,可以运行!

但是可以发现,这两个表有一列共同的数据,不仅仅是列名相同,连列中的数据也是相同的,那么如果列中的数据不同会出现上面情况呢?下面我们来看一下:

<span style="font-size:18px;">INSERT INTO Sales 
values('TESTORDER','TET3',GETDATE(),10,'NET 30 ',1234567)</span>
我们向从表Sales 中在加入一行数据,发现报如下错误了:
<span style="font-size:18px;">消息 547,级别 16,状态 0,第 1 行
INSERT 语句与 FOREIGN KEY 约束"FK__Sales__StoreCODE__04E4BC85"冲突。该冲突发生于数据库"DatabasePractice",表"dbo.Stores", column 'StoreCode'。
语句已终止。
</span>
这里我们不难发现:因为主表Stores 中没有我们新加的这一行数据中的此表的外键,所以就报错了,这就是数据的参照完整性。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值