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

新增列与外键约束

alter table tbl_name add [column] col_name column_definition(列定义) [first | after col_name]这个语句是用来新增列的。不可以新增名字相同的列,但是若该列为外键约束,则可以直接修改其参数。

直接修改已完成的外键约束:alter table tbl_name(子表) add froeign key(pid(外键)) references tbl_name1(父表) on delete cascade on update cascade;为外键约束增加随父表删除/更新自动删除/更新的参数。

请问为什么外键约束不会提示列名重复,是只有外键约束这样么?

正在回答

2 回答

感谢回复:另,外键约束不是为了保持数据的一致性么,应该尽量避免此类问题吧,参照列不应该是类似唯一约束属性的列么。

我又一次实验的时候,发现了这个

  CONSTRAINT `st2_ibfk_1` FOREIGN KEY (`pid`) REFERENCES `st1` (`id`),

  CONSTRAINT `st2_ibfk_2` FOREIGN KEY (`pid`) REFERENCES `st1` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,

  CONSTRAINT `st2_ibfk_3` FOREIGN KEY (`pid`) REFERENCES `st1` (`id`) ON DELETE CASCADE

也就是说,pid这个列有三个外键约束?有些疑惑,我删除一个,并不能删除父表,想请问各位大佬,这个要怎么理解呢?

0 回复 有任何疑惑可以回复我~
#1

慕仙9395868

看提示啊
2018-10-08 回复 有任何疑惑可以回复我~

外键约束只是关联两张表单 让A表的该列数据随B表中的数据进行添加,但是A表中的该列数据是可以重复的,

比如有个user表 里面有个外键约束是性别列 ,另一个主表性别由男女两种

那user表里的性别列中的数据可不可以重复? 

是可以任意从男女中选择填入数据

还是只能有一个男的 一个女的 , 那剩下的人填什么


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
与MySQL的零距离接触
  • 参与学习       396886    人
  • 解答问题       3353    个

本课程涵盖全部MySQL数据库的基础,学习MySQL数据库的基础知识

进入课程

新增列与外键约束

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信