【mysql】将一张表拆分成多张表
目前已有jing_dong表,里面有id、name、cate_name、brand_name、price、is_show、is_saleoff几个字段
1.创建新的表
新建的good_cates表有id和name两个字段
create table good_cates(
id int not null primary key auto_increment,
name varchar(50) not null
);
2.把原表的数据插入到新表中
insert into good_cates(name) select cate_name from goods group by cate_name;
或
insert into good_cates(name) select distinct cate_name from goods
3.更新原表中的字段信息
把goods表中的cate_name数据替换成good_cates表中的id数据
update goods g inner join good_cates gc on g.cate_name=gc.name set g.cate_name=gc.id;
4.创建表时同时插入数据
创建good_brands表并且把goods表中的brand_name字段数据插入到good_brands表的name字段
create table good_brands(
id int unsigned primary key auto_increment,
name varchar(50) not null)
select brand_name as name from goods group by brand_name;
把goods表中的brand_name替换成成good_brands表中的id字段数据
update goods g inner join good_brands gb on g.brand_name=gb.name set g.brand_name=gb.id;
注意:被插入数据的字段名要和as后的名一致,并且分号放在最后
5.修改字段名和类型
修改goods表中的cate_name和brand_name两个字段的名和类型
alter table goods change cate_name cate_id int not null,change brand_name brand_id int not null;
还没有评论,来说两句吧...