2014-03-31 86 views
1

我正在附近的約25000條記錄的表格。分解(正常化)將1個表格分成2個表格

Table Namee: tblStdCods 
Table Columns: id, Place, STD Code, State 

有沒有辦法分解表分爲兩個這樣而不影響數據存儲在IT,

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 
+1

你原來的表有4列但你的2表有6列合併,請你能擴大你的問題與原始數據的一些例子和期望的結果當表被分成2(最好顯示id/stateId關係) – Mike

+0

@mike在兩個表中的stateid列僅供參考...... –

+0

@mike我已更新 – Mangesh

回答

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 

兩個結果表的字段類型將從原來的表中導出,唯一要小心的是個人有T他在AUTO_INCREMENT stateID字段的tblState表中,這樣數據庫會自動生成你的id ...

+0

哦,非常感謝。 – Mangesh