如何设置主键和外键,实现级联更新,级联删除

如何设置主键和外键,实现级联更新,级联删除,第1张

主键

外键

索引

定义:

唯一标识一条记录,不能有重复的,不允许为空

表的外键是另一表的主键,

外键可以有重复的,

可以是空值

该字段没有重复值,但可以有一个空值

作用:

用来保证数据完整性

用来和其他表建立联系用的

是提高查询排序的速度

个数:

主键只能有一个

一个表可以有多个外键

一个表可以有多个惟一索引

设置索引

若要设置外键,在参照表(pc表)

和被参照表(parts表)中,相对应的两个字段必须都设置索引(index)。

对parts表:

ALTER

TABLE

parts

ADD

INDEX

idx_model

(model)

这句话的意思是,为parts表增加一个索引,索引建立在model字段上,给这个索引起个名字叫idx_model。

对pc表也类似:

ALTER

TABLE

pc

ADD

INDEX

idx_cpumodel

(cpumodel)

定义外键

下面为两张表之间建立前面所述的那种“约束”。因为pc的CPU型号必须参照parts表中的相应型号,所以我们将pc表的cpumodel字段设置为“外键”(FOREIGN

KEY),即这个键的参照值来自于其他表。

ALTER

TABLE

pc

ADD

CONSTRAINT

fk_cpu_model

FOREIGN

KEY

(cpumodel)

REFERENCES

parts(model)

级联 *** 作

级联更新:更新主键时,外键也随之更新。

可以在定义外键的时候,在最后加入这样的关键字:

ON

UPDATE

CASCADE

即在主表更新时,子表(们)产生连锁更新动作,似乎有些人喜欢把这个叫“级联” *** 作。

如果把这语句完整的写出来,就是:

ALTER

TABLE

pc

ADD

CONSTRAINT

fk_cpu_model

FOREIGN

KEY

(cpumodel)

REFERENCES

parts(model)

ON

UPDATE

CASCADE

级联删除:删除主键时,外键也随之删除。

ALTER

TABLE

pc

ADD

CONSTRAINT

fk_cpu_model

FOREIGN

KEY

(cpumodel)

REFERENCES

parts(model)

ON

DELETE

CASCADE

级联更新、删除:

on

update

cascade

on

delete

cascade

两种方法,一种是sql语句,一种是用图形界面 *** 作。

sql语句写法:

alter table SZ_Picture

add constraint FK_SZ_PICTU_RELATIONS_SZ_PICTU foreign key (pictureTypeId)

references SZ_PictureType (pictureTypeId)

on update cascade on delete cascade

其中on update cascade on delete cascade代表级联更新和级联删除。

图形界面 *** 作方法:

首先在PDM中两个表的relationship上双击,d出如下对话框,选择Integrity 选项卡,将Update constraint 和Delete constraint下的cascade选上即可。


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

原文地址:https://54852.com/bake/8014789.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存