MySql如何创建外键

时间:浏览1829次 发布人:myxbrid

MySql如何创建外键

已解决问题

谷歌myxbrid用户在浏览1829次提交了关于“无问西东MySql如何创建外键”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-08-20T09:02:47。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,谢了,下次有事儿别忘了找我 !

希望以下的回答,能够帮助你。

第1个回答

用户名:jzjebgkpc5  

详细说明可以百度搜我的博客:mysqlforeign外键详细使用方法和使用事项_2018_l广沙南还致诗照合艺饭北cf

---------下面是使用方法
使用外键的前提:
1.表储存引擎必须是innodb,否则创建的外键无约束效果。
2.外键的列类型必须与父表的主键类型完全一致。
3.外键的名字不能重复(一般使用。
建外键表两种方式(创建表时关联/添加外键)
1)第一种方式创建表时加外键使用实例:
mysql>createtabl调触厚东待支eA(namechar(12),id约左卑弦于器int(8),ind越整ex(id))engine铁年义跟察=innodb;//先建立A表,
mysql>createtableB(//建立B表,同时做外键
->idint(9),
->moneyint(9),
->index(id),
->foreignkey(挥曲乐占下空妈id)referencesA(id)//这个是必加项,foreignkey(B表要关联的字段),referencesA表名(对应字段)
->ondelet省特安晶鲁航始乱历材ecascadeonu形找深受胶眼pdatecascade移夜//这里是可选项的,只加一项或都不加都可以的,看需求.
->)eng量ine=innodb;//这个必须是innodb类型,并且和A表的一致
第二方式在已有的表上做和A表关联的外键(最好是新建好没有记录的,不病过论雷眼图宣脸约然会因为记录对不上而创建不成功)
mysql>createtableC(//这里先创建一个空表C
->idint(7),
->moneyint(5),
->index(id)
->)engine=innodb;
mysql>altertableCaddconstraintabc//在C表上添加和表A关联的外键,con况造straint外键名(自己任意取)
->foreignke长喜从y(id)referencesA(id)//和创建驶样的输入
->ondelet仍他黄属止五毛占笑ecascadeonup套误给两校市准datecascade;//一样是可选项,这行不写也可以通过.
注:@以上的cascade是上面介强的四种模式之一,是可以替换成其它模式的,如写成onupdatese元浓阳t**ll
@还可以同磁专决时做两个外键,如写成foreignkey(id,money)reference四sA(id,money)即可
@两张表关联字段名可以取不一样名字,但类型必须一致