MySQL Workbench でテーブル作成スクリプトを取得するためのショートカットが見つからないため、MySQL GUI Tools の MySQL Query Browser にロールバックしています。
13 に答える
少なくともコミュニティ版では、そのようなオプションも見つかりません。
これは、残念ながら商用版でしか利用できないリバースエンジニアリング機能に対応していると思います(引用):
MySQL サーバーから直接データベースをリバース エンジニアリングすることは、MySQL Workbench の商用バージョンにのみ適用されます。
それでも、プレーン SQL を使用create table
して、テーブルを作成できるようにする命令を取得できます。
たとえば、次のクエリ:
show create table url_alias;
drupal データベースで実行するとclick > copy field content
、結果に対して権利を使用すると、次のようになります。
'CREATE TABLE `url_alias` (
`pid` int(10) unsigned NOT NULL auto_increment,
`src` varchar(128) NOT NULL default '''',
`dst` varchar(128) NOT NULL default '''',
`language` varchar(12) NOT NULL default '''',
PRIMARY KEY (`pid`),
UNIQUE KEY `dst_language` (`dst`,`language`),
KEY `src_language` (`src`,`language`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8'
残念なことに(再び)、MySQL Workbench は、この方法でコピーすると、あらゆる場所にいくつかの引用符を追加します :-(
click > copy field (unquoted)
編集:MySQL 8.0 を使用すると、引用符なしで目的の結果を得るために、結果を正しく処理するオプションがあります。
最後に、MySQL Query Browser を使用する以外の最も簡単なshow create table
解決策は、コマンドライン クライアントを使用してデータベースに接続し、そこからクエリを実行することです。
mysql> show create table url_alias\G
*************************** 1. row ***************************
Table: url_alias
Create Table: CREATE TABLE `url_alias` (
`pid` int(10) unsigned NOT NULL auto_increment,
`src` varchar(128) NOT NULL default '',
`dst` varchar(128) NOT NULL default '',
`language` varchar(12) NOT NULL default '',
PRIMARY KEY (`pid`),
UNIQUE KEY `dst_language` (`dst`,`language`),
KEY `src_language` (`src`,`language`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
出力の「適切な部分」を取得する方が簡単です。削除する引用はありません。
そして、完全を期すためmysqldump
に、テーブルの構造を取得するために使用することもできます:
mysqldump --no-data --user=USERNAME --password=PASSWORD --host=HOST DATABASE_NAME TABLE_NAME
--no-data
スイッチを使用すると、いくつかのモード設定とそのすべての途中で、構造のみが取得されます。
個々のテーブルの作成スクリプトを取得するには、テーブル名を右クリックし、[クリップボードにコピー] > [ステートメントの作成] をクリックします。
[File] > [Forward Engineering SQL_CREATE Script..] オプションを有効にして、データベース全体の作成スクリプトを取得するには:
- データベース > リバース エンジニアリング (Ctrl+R)
- 手順に従って EER 図を作成します
- EER ダイアグラムを表示しているときに、[ファイル] > [Forward Engineering SQL_CREATE Script...] (Ctrl+Shift+G) をクリックします。
関連するテーブルを右クリックし、次のいずれかを選択します。
- クリップボードにコピー > ステートメントの作成
- SQL エディターに送信 > ステートメントの作成
それは私にはうまくいくようです。
これは、SQL開発ではなくサーバー管理にあります。
- ホーム画面で、右端のサーバー管理セクションからデータベースが配置されているデータベースサーバーインスタンスを選択します。
- 右側のメニューから[データのエクスポート]を選択します。
- エクスポートするデータベースを選択し、場所を選択します。
- [エクスポートの開始]をクリックします。
同じ質問に対する答えを探してここに来ました。しかし、私は自分でもっと良い答えを見つけました。
In the tables list, if you right-click on the table name there is a suite of CRUD script generation options in "Send to SQL Editor". You can select multiple tables and take the same approach too.
MySQL Workbench の私のバージョン: 5.2.37
単純に使用します:
show create table <table_name>
問題を完全に理解したかどうかはわかりませんが、エクスポート スクリプトを作成するだけの場合は、エンジニアを SQL スクリプトに転送する必要があります - Ctrl + Shift + G または File -> Export -> 最初のオプション。
「モデルの概要」または「図」でテーブルを右クリックすると、「挿入をクリップボードにコピー」または「SQLをクリップボードにコピー」のオプションが表示されます。
これがまだ問題かどうかはわかりませんが、私にとって 5.2.35CE では、次の方法で作成スクリプトを取得できます。
データベース --> リバース エンジニアリング
保存された接続の下で、データベースを選択します
[次へ] を数回押して、リバース エンジニアリングするスキーマを選択し、ツールを機能させます。
すべての DB のスキーマを含む「EER ダイアグラム」ビューが表示されます。気になるテーブルを右クリックし、「SQL をクリップボードにコピー」を選択すると、必要なものが得られると思います。
うまくいけば、これはそれを必要とする他の誰かを助けるでしょう.