zoukankan      html  css  js  c++  java
  • 4-MySQL拆分表

    如上图,将goods表中的cate_name字段拆分一个商品分类表goods_cates,步骤如下:

    1,创建商品分类表-goods_cates;

    create table goods_cates(
    
    id int unsigned primary key auto_increment,
    
    name varchar(40) not null
    );

    2,将goods表数据根据字段cate_name分组,将分组后的商品种类信息添加到goods_cates表;

    注: 这里insert into 语句没有values 关键字!

    insert into goods_cates (name) select cate_name from goods group by cate_name;

    3,同步表数据-使用goods_cates表的id字段数据更新goods表的cate_name字段数据;

    update goods as g inner join goods_cates as c on g.cate_name=c.name set g.cate_name=c.id;

    4,将goods表的cate_name字段修改为cate_id,并修改数据类型属性与goods_cates表的id字段的数据类型属性一致;

    alter table goods change cate_name cate_id int unsigned not null;

    5,在goods表中添加外键(foreign key)

    外键约束:对数据的有效性进行验证
    关键字: foreign key,只有 innodb数据库引擎 支持外键约束

    在实际开发中,很少会使用到外键约束,会极大的降低表更新的效率

    alter table goods add foreign key(cate_id) references goods_cates(id);

    拆分后的goods表

    拆分后的goods_cates表

  • 相关阅读:
    UML基本关系
    C++关键字简述
    Install opencv on Centos
    C++编程规范
    YCbCr to RGB and RGB toYCbCr
    Linux目录结构(二)
    Dubbo工作流程
    spring bean的作用域和生命周期
    spring aop原理和实现
    静态代理、jdk动态代理、cglib动态代理
  • 原文地址:https://www.cnblogs.com/summer1019/p/11046143.html
Copyright © 2011-2022 走看看