1

Person という MySql テーブルがあり、ある日、このテーブルから誰かを誤って削除してしまいました。PersonBak というバックアップ テーブルがあるので、バックアップから削除を復元するつもりでした。ただし、アプリケーションを進める過程で、Person のすべてのフィールドの名前を変更しました。ただし、主キーの PersonID は除きます。Person と PersonBak は同じデータを持ちますが、一致する列名は 1 つだけです。

多くの作業をせずに行方不明の人を PersonBak から Person に復元する方法はありますか? かなりの数のコラムがあります。もちろん、私は今仕事をすることもできますが、これが再び起こることを想像することができます.

これらが実際には同じテーブルであり、列の順序が同じで、列名が異なるだけであることをMySqlに伝える方法はありますか? または、PersonBak のどの列が Person のどの列と一致するかの詳細を書き出さずにこれを行う方法はありますか?

4

3 に答える 3

1

テーブル間で列のデータ型が同じで、列の数が同じで、それらがすべて同じ順序である場合、MySQL がすべての作業を行います。

INSERT INTO t1 SELECT * FROM t2;

列名は無視されます。サーバーは序数の位置のみを使用して、from/to 列を並べる方法を決定します。

于 2013-10-26T06:11:43.100 に答える
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)

于 2013-10-26T04:28:49.177 に答える