如何将查询结果插入到新表?

现在有两张表 old和new
old有数据, new没有数据
表结构都是一样的

image.png

现在对old表中一大堆乱七八糟的数据进行排序, 并将排序结果插入到new表中, 应该如何实现?

SELECT * FROM `old` ORDER BY `name` ASC;
阅读 2.4k
4 个回答

使用insert into ... select即可,需要注意两张表的字段顺序要对应,如下

insert into new表
select null, name
from old表

1:数据量小的话写个程序执行 INSERT INTO SELECT。
2:数据量大的话还是用数据文件导出导入。

可以把老库的binlog导出来,然后在新库里重放,这样可以避免对老库性能的影响

INSERT INTO `new`
SELECT NULL, `name` FROM `old` ORDER BY `name` ASC;

SELECT * FROM `old`;

SELECT * FROM `new`;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题