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表


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM