sql >> データベース >  >> RDS >> Mysql

MySQL Workbenchでテーブル作成スクリプトを取得するにはどうすればよいですか?

    少なくともコミュニティ版では、そのようなオプションも見つかりません。

    これは、 リバースエンジニアリング この機能は、残念ながら、商用版でのみ利用可能です(引用)


    それでも、plain-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は、この方法でコピーすると、どこにでも引用符を追加します:-(

    編集:MySQL 8.0を使用して、右click > copy field (unquoted)のオプションがあります 結果を引用符なしで取得します。


    最後に、最も単純な 解決策は、MySQLクエリブラウザを使用する場合を除いて、コマンドラインクライアントを使用してデータベースに接続し、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を使用する スイッチを押すと、構造が-いくつかのモード設定とそのすべての途中でのみ取得されます



    1. MYSQLからのデータを表示します。 SQLステートメントエラー

    2. リバースエンジニアリング(オラクル)スキーマからERDへ

    3. Mysql:2つの日付の間のすべてのデータを選択します

    4. 1つのフィールドの数が1より大きい場所を選択します