【mysql】将一张表拆分成多张表

不念不忘少年蓝@ 2022-11-28 10:33 355阅读 0赞

目前已有jing_dong表,里面有id、name、cate_name、brand_name、price、is_show、is_saleoff几个字段

1.创建新的表

  1. 新建的good_cates表有idname两个字段
  2. create table good_cates(
  3. id int not null primary key auto_increment,
  4. name varchar(50) not null
  5. );

2.把原表的数据插入到新表中

  1. insert into good_cates(name) select cate_name from goods group by cate_name;
  2. insert into good_cates(name) select distinct cate_name from goods

3.更新原表中的字段信息

  1. goods表中的cate_name数据替换成good_cates表中的id数据
  2. update goods g inner join good_cates gc on g.cate_name=gc.name set g.cate_name=gc.id;

4.创建表时同时插入数据

  1. 创建good_brands表并且把goods表中的brand_name字段数据插入到good_brands表的name字段
  2. create table good_brands(
  3. id int unsigned primary key auto_increment,
  4. name varchar(50) not null)
  5. select brand_name as name from goods group by brand_name;
  6. goods表中的brand_name替换成成good_brands表中的id字段数据
  7. update goods g inner join good_brands gb on g.brand_name=gb.name set g.brand_name=gb.id;

注意:被插入数据的字段名要和as后的名一致,并且分号放在最后

5.修改字段名和类型

  1. 修改goods表中的cate_namebrand_name两个字段的名和类型
  2. alter table goods change cate_name cate_id int not null,change brand_name brand_id int not null;

发表评论

表情:
评论列表 (有 0 条评论,355人围观)

还没有评论,来说两句吧...

相关阅读