web-dev-qa-db-ja.com

Mysqlワークベンチの2つのモデル間でテーブルをコピーする方法は?

私はいくつかのデータベースのことをしています、1つのテーブルを1つのモデルから別のモデルにコピーする必要がありますが、効果がない多くの方法を試します。これを行う方法はありますか?

20
DraculaW

最善のオプションは、おそらく、持ち越したいオブジェクトを含むモデルの簡略バージョンを作成することです。次に、ターゲットモデルを開き、File -> Include Model...を実行します。削除されたソースモデルを選択します。

19
Mike Lischke

MySQL Workbenchを介して単一のテーブルを実行する場合。

MySQL Workbenchの場合:

  1. MySQLサーバーに接続する
  2. データベースを展開する
  3. テーブルを右クリック
  4. クリップボードにコピーを選択
  5. ステートメントの作成を選択します

以下のような、テーブルの作成ステートメントがクリップボードにコピーされます。

   CREATE TABLE `cache` (
  `cid` varchar(255) NOT NULL DEFAULT '',
  `data` longblob,
  `expire` int(11) NOT NULL DEFAULT '0',
  `created` int(11) NOT NULL DEFAULT '0',
  `headers` text,
  `serialized` smallint(6) NOT NULL DEFAULT '0',
  PRIMARY KEY (`cid`),
  KEY `expire` (`expire`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

新しいデータベースにテーブルを作成します

  1. クエリを実行するための新しいSQLタブを開きます([ファイル]-> [新しいクエリ]タブ)
  2. テーブルを作成するデータベースを含めるようにテーブル作成コードを変更します。

     CREATE TABLE `databaseName`.`cache` (
      `cid` varchar(255) NOT NULL DEFAULT '',
      `data` longblob,
      `expire` int(11) NOT NULL DEFAULT '0',
      `created` int(11) NOT NULL DEFAULT '0',
      `headers` text,
      `serialized` smallint(6) NOT NULL DEFAULT '0',
      PRIMARY KEY (`cid`),
      KEY `expire` (`expire`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  3. 次に、実行ボタンをクリックします(稲妻のように見えます)

これにより、MySQLワークベンチを使用して、テーブルスキーマが1つのdbから別のdbにコピーされます。データベース内のテーブルを更新するだけで、新しく追加されたテーブルが表示されるはずです。

20
Ricky Hewitt
  1. ソースデータベースのあるタブを選択
  2. メニュー:サーバー->データのエクスポート
  3. スキーマオブジェクトとしてスキーマとテーブルを選択します
  4. [自己完結型ファイルにエクスポート]オプションを選択し、[単一トランザクションでダンプを作成]をオンにします(自己完結型のみ)
  5. 完全なファイルパスをクリップボードにコピー
  6. エクスポートを開始
  7. ターゲットデータベースのあるタブを選択
  8. メニュー:サーバー->データのインポート。ターゲットデータベース名がデータインポートビューの左上隅にあることを確認してください
  9. 自己完結型ファイルからインポートを選択し、クリップボードから完全なファイルパスを貼り付けます
  10. デフォルトのターゲットスキーマを選択
  11. ダンプコンテンツの選択(ダンプ構造とデータなど…)
  12. インポートを開始
9
x1z1x

言及する価値があると思う

  1. コピーされたテーブルは、コピーされるスキーマに存在しない元のスキーマのテーブルのフィールドを参照する場合があります。他のスキーマに追加する前に、これらの不一致についてテーブルを検査することをお勧めします。
  2. エンジンの互換性(たとえば、InnoDBとMyISAM)および文字セットを確認することをお勧めします。
3
constant283

.m_property_natureのようなテーブル.m_property_natureを作成します。

INSERT INTO .m_property_nature SELECT * from .m_property_nature;

0
Vinod Joshi

テーブル情報からクレートテーブルクエリを取得し、異なるデータベースインスタンスで同じクエリを使用できます。

  1. 作成テーブルTABLENAME.contentを表示し、クエリをコピーします。
  2. 接続された別のDbインスタンスで生成されたクエリを実行します。
0
Tarun Voora

Selectステートメントを使用するだけです。ここでは、「original_schema」スキーマ/データベースから「new_schema」スキーマへの「original_table」テーブルの複製を作成しています。

CREATE TABLE new_schema.duplicate_table AS
Select * from original_schema.original_table;

必要なselectステートメントを追加し、条件を追加して列を選択するだけです。

CREATE TABLE new_schema.duplicate_table AS
SELECT column1, column2       
FROM original_schema.original_table
WHERE column2 < 11000000;
0
Mnl

既にテーブルを作成していて、データをコピーするだけの場合は、「データのエクスポートウィザード」と「データのインポートウィザード」を使用することをお勧めします。基本的には、データをエクスポートしてインポートするためにプログラム内のものを選択することであり、使いやすいです。

MySQLには、ウィザードに関する記事があります。 テーブルデータのエクスポートおよびインポートウィザード

ウィザードを使用してデータをコピーするには、次の手順を実行します。

  1. リストからデータのコピー元のテーブルを見つけます。
  2. 右クリックして、「テーブルデータエクスポートウィザード」を選択します。
  3. コピーする列を選択します。
  4. コピーしたデータとともに* .csvまたは* .jsonファイルを保存する場所を選択します。

  5. コピーしたデータを挿入するテーブルを見つけます。

  6. 右クリックして、「テーブルデータインポートウィザード」を選択します。
  7. エクスポートしたファイルを選択します。
  8. コピー元のテーブルの列を、挿入先のテーブルにマップします。
  9. 「完了」を押します。選択したとおりにデータが挿入されます。
0
RobertLonnberg