• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    MySQL创建数据表并建立主外键关系详解
    POST TIME:2021-10-18 20:28

    前言

    为mysql数据表建立主外键需要注意以下几点:

    一、SQL语句创建数据表并设置主外键关系

    create table demo.ChineseCharInfo
    (
    ID int not null auto_increment,
    Hanzi varchar(10) not null,
    primary key (ID)
    )
    engine=innodb auto_increment=1 default charset=utf8 collate=utf8_general_ci;
    create table demo.ChinesePinyinInfo
    (
    ID int not null auto_increment,
    CharID int null,
    Pinyin varchar(10) null,
    Tone tinyint unsigned null,
    primary key (ID),
    -- 方式一:不指定外键名称,数据库自动生成
    foreign key (CharID) references ChineseCharInfo(ID) on delete cascade on update cascade 
    -- 方式二:指定外键名称为(FK_Name)
    -- constraint FK_Name foreign key (CharID) references ChineseCharInfo(ID) on delete cascade on update cascade 
    )
    engine=innodb auto_increment=1 default charset=utf8 collate=utf8_general_ci;

    二、当数据表已经存在时,就要使用下面的方法建立主外键关系

    -- 为表(demo.ChinesePinyinInfo)中字段(CharID)添加外键,并指定外键名为(FK_Name)
    alter table demo.ChinesePinyinInfo add constraint FK_Name foreign key (CharID) references ChineseCharInfo(ID);
    -- 为表(demo.ChinesePinyinInfo)中字段(CharID)添加外键,不指定外键名,由数据库自动生成外键名
    alter table demo.ChinesePinyinInfo add foreign key (CharID) references ChineseCharInfo(ID);

    三、删除主外键约束

    -- 通过修改列的属性来删除自增长,第一个(ID)为原列名,第二个(ID)为新列名
    alter table demo.ChinesePinyinInfo change ID ID int not null;
    -- 删除表(demo.ChinesePinyinInfo)中的主键约束,如果主键列为自增列,则需要先删除该列的自增长
    alter table demo.ChinesePinyinInfo drop primary key;
    -- 删除表(demo.ChinesePinyinInfo)中的名称为(FK_Name)的外键
    alter table demo.ChinesePinyinInfo drop foreign key FK_Name;

    四、主外键关系的约束

    如果子表试图创建一个在主表中不存在的外键值,数据库会拒绝任何insert或update操作。

    如果主表试图update或者delete任何子表中存在或匹配的外键值,最终动作取决于外键约束定义中的on delete和on update选项。

    on delete和on update都有下面四种动作。

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • MySQL外键约束的实例讲解
    • 详解MySQL 外键约束
    • MySQL外键约束常见操作方法示例【查看、添加、修改、删除】
    • MySQL删除有外键约束的表数据方法介绍
    • MySQL删除表的时候忽略外键约束的简单实现
    • MySQL 关闭子表的外键约束检察方法
    • MySQL外键约束的禁用与启用命令
    • 详解MySQL中的外键约束问题
    • MySQL与Oracle数据类型对应关系(表格形式)
    • MySQL 外键约束和表关系相关总结
    上一篇:mysql语句查询用户权限过程详解
    下一篇:MySQL表中添加时间戳的几种方法
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信