我有一个名为Person的MySql表,有一天我不小心从这个表中删除了某个人。我有一个名为PersonBak的备份表,所以我打算从备份中恢复删除。但是,在我的应用程序向前移动过程中,我重命名了Person中的所有字段,但主键为PersonID。现在Person和PersonBak具有相同的数据,但只有一个匹配的列名。
有没有办法在不做大量工作的情况下将我的失踪人员从PersonBak恢复到Person?我有很多专栏。当然我现在可以做的工作,但我可以想象这会再次出现。
有没有办法告诉MySql这些是真正相同的表,列的顺序是否相同,只是列名不同?或者在没有写出PersonBak中哪些列与Person中的哪些列匹配的具体信息的情况下完成任何操作?
答案 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,您可以指定字段名称&创建一个插入语句