MySQL:重新做我的结构。如何移动现有数据?

时间:2010-12-30 06:05:50

标签: mysql

我决定重做我的MySQL表结构。如何将数据从旧表中移动到新表中。最好的方法是什么?目前,我正在使用phpmyadmin。有没有办法在Unix中管道,即SELECT * FROM table | UPDATE

3 个答案:

答案 0 :(得分:2)

INSERT...SELECT是您最好的选择。参考:http://dev.mysql.com/doc/refman/5.5/en/insert-select.html

例如:

INSERT INTO destinationTable (col1, col2, col3) 
SELECT oldcol1, oldcol2, oldcol3 
FROM sourceTable 

答案 1 :(得分:0)

您可以通过执行

将数据移动到新表中
INSERT newtable SELECT * FROM oldtable

如果尚未创建新表:

CREATE TABLE newtable
SELECT * FROM oldtable

答案 2 :(得分:0)

您不必,只需执行类似

的操作
create table new_table like old_table;
insert into new_table select * from old_table;

如果结构不同:

create table new_table ...; <-- whatever definition

insert into new_table 
select 
  (FUNCTION_CALL to change column value)
from old_table;

例如

insert into new_table 
select 
  concat(title, ' by ', author) as title ...
from old_table;