为了账号安全,请及时绑定邮箱和手机立即绑定

如下代码,请问这句Mysql SQL语句是什么意思呢?如何理解?

如下代码,请问这句Mysql SQL语句是什么意思呢?如何理解?

阿晨1998 2022-05-02 10:10:28
ALTER TABLE `albums` ADD CONSTRAINT `genre_inter_relational_constraint` FOREIGN KEY ( `genre_id` ) REFERENCES `genres` ( `id` ) ON DELETE CASCADE ON UPDATE CASCADE ;
查看完整描述

2 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超8个赞

修改表 albums,为他添加一个外键约束.这个约束建在本表的genre_id列上. 参考的是genres表的id列.
这个约束的作用是,保证albums表的genre_id列必须包含在genres表的id列中,要不然插入数据就会报错.
下面的:
ON DELETE CASCADE 如果被引用表的某id被删除时,关联删除albums表中genre_id列与其相等的记录.
ON UPDATE CASCADE 如果被引用表的某id被更新时,同时更新albums表中genre_id列与其相等的记录.

查看完整回答
反对 回复 2022-05-04
?
呼如林

TA贡献1798条经验 获得超3个赞

ALTER TABLE `albums` ADD CONSTRAINT `genre_inter_relational_constraint` FOREIGN KEY ( `genre_id` ) REFERENCES `genres` ( `id` ) ON DELETE CASCADE ON UPDATE CASCADE ;

总的意思就是给表加个外键约束
我来肢解下:
ALTER TABLE `albums`
==>要加约束的对象 albume表

ADD CONSTRAINT `genre_inter_relational_constraint
`==>
增加一个约束 名字叫 `genre_inter_relational_constraint`

FOREIGN KEY ( `genre_id` ) REFERENCES `genres` ( `id` )
===>
增加约束的类型 叫做FOREIGN KEY 就是外键的意思
括号里的( `genre_id` ) 表示约束作用的对象 genre_id 这个列
REFERENCES `genres` ( `id` ) 表示 关联的主表对象是genres表的id列

ON DELETE CASCADE ON UPDATE CASCADE
==》
表示你外键所影响的一些操作(主表操作对你装个表的影响) 比如
ON DELETE CASCADE 就是当你的主表genres进行删除操作的时候 如果删除的列中的id在你建立外键的那个表里存在相同ID 那么这个从表的相关记录也要删除
ON UPDATE CASCADE 也一样 就是update操作的时候的事情了



查看完整回答
反对 回复 2022-05-04
  • 2 回答
  • 0 关注
  • 204 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号