我有接近约25000条记录的下表。
Table Namee: tblStdCods
Table Columns: id, Place, STD Code, State
有没有办法将表分解为两个,不会影响存储在其中的数据,
tblStdCodes: id, Place, stadcode, stateId
tblState: stateId, stateName
Original Table :
id Place STDCode State
1 Ahmednagar 414003 Maharashtra
Resultanat Tables :
table 1:
id Place STDCode State
1 Ahmednagar 414003 1
table 2:
stateId stateName
1 Maharashtra
答案 0 :(得分:2)
您必须创建两个具有所需结构的表,之后您可以简单地从旧表中插入数据,如下所示:
//tblState have the field stateName of type int AUTO_INCREMENT
INSERT INTO tblState (stateName) SELECT State FROM tblStdCods GROUP BY State;
//Insert records with the pointer to the state table
INSERT INTO tblStdCodes (Id,Place, stadcode, stateId) SELECT Id, Place, STD Code, stateID FROM
tblStdCods JOIN tblState ON State = stateName
两个结果表的字段类型将从原始表派生,唯一需要注意的是在stateID
表的tblState
字段上使用AUTO_INCREMENT,在此数据库将自动为您生成的方式...