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