2010-04-29 82 views
0

我想纠正以前的数据库创建与包含需要保存的数据的表。由于某些表格仍然可以重复使用,因此我不需要重新创建一个全新的数据库,而是需要将存在的表格分成两个我已经完成的表格。现在我试图将数据插入到2个新表中,并且由于旧表中的重复数据,我很难做到这一点。数据库表复制

旧表结构:

ClientProjects clientId PK 
       clientName 
       clientProj 
       hashkey MD5 (clientname and clientProj) 

新的表结构:

client   clientId PK 
       clientName 

projects   queryId PK 
       clientId PK 
       projectName 

我希望这是有道理的。问题是,在旧表中,例如,您拥有多个clientIds的客户端。

回答

1

假设你的客户端名是独一无二的你可以这样类似:

INSERT client (clientId, clientName) 
    SELECT MAX(clientID), clientName FROM oldTable GROUP BY clientName; 

INSERT project (clientId, projectName) 
    SELECT n.clientId, o.projectName from client n 
     INNER JOIN oldTable o on o.clientName = n.clientName;