4

テーブル全体をあるmysqlデータベースから別のデータベースにコピーしようとしています。これはほとんどで動作します

INSERT INTO `new-db`.`table` 
    SELECT * FROM `old-db`.`table`;

ただし、ENUMフィールドは正しく転送されません。常に空です。

しかし、実行中

INSERT INTO `new-db`.`table` (an_enum_field) 
    SELECT an_enum_field FROM `old-db`.`table`;

正しく動作します。

最初のステートメントでENUMフィールドを正しくコピーするためにできることはありますか?

4

1 に答える 1

0

両方のテーブル間の列の順序は同じである必要があります。そうしないと、 * を使用したマジック ステートメントで値を正しくマッピングできません。

すべての列に明示的に名前を付けると役立ちます (質問の 2 番目の例)。

于 2013-03-01T10:32:58.353 に答える