从不兼容的表插入表

时间:2013-10-26 04:11:10

标签: mysql

我有一个名为Person的MySql表,有一天我不小心从这个表中删除了某个人。我有一个名为PersonBak的备份表,所以我打算从备份中恢复删除。但是,在我的应用程序向前移动过程中,我重命名了Person中的所有字段,但主键为PersonID。现在Person和PersonBak具有相同的数据,但只有一个匹配的列名。

有没有办法在不做大量工作的情况下将我的失踪人员从PersonBak恢复到Person?我有很多专栏。当然我现在可以做的工作,但我可以想象这会再次出现。

有没有办法告诉MySql这些是真正相同的表,列的顺序是否相同,只是列名不同?或者在没有写出PersonBak中哪些列与Person中的哪些列匹配的具体信息的情况下完成任何操作?

3 个答案:

答案 0 :(得分:1)

这个怎么样:

  

insert into Person(id, col11, col12) (select id, col21, col22 from personBak where id=5)


  

人员架构:

     

columns (id, col11, col12)


  

personBak架构:

     

columns (id, col21, col22)

答案 1 :(得分:1)

如果表之间的列数据类型相同,列数相同,并且它们的顺序相同,那么MySQL将为您完成所有工作:

INSERT INTO t1 SELECT * FROM t2;

列名称将被忽略。服务器仅使用序号位置来决定如何排列from / to列。

答案 2 :(得分:0)

查看Mysql SELECT INTO,您可以指定字段名称&创建一个插入语句