MySQL Workbenchでテーブルを作成する2つの方法:Forward Engineerとモデルのシンクロナイズ

こんにちは。ゆうせいです。

今回は、MySQL WorkbenchのERモデルからテーブルを作成する方法について解説します。
MySQL Workbenchの基本操作やER図の作り方は理解している前提で進めますので、モデルの「次のステップ」にあたる内容ですね。

実は、テーブルを作成する方法には大きく分けて2つの手段があります。

  1. Forward Engineer(フォワードエンジニア)
  2. Synchronize Model(モデルとデータベースの同期)

研修など、最初のうちは1番の「Forward Engineer」を使うのがシンプルでおすすめです!
ですが、現場では2番の「同期」も使いこなせると非常に便利ですので、両方とも紹介します。


Forward Engineer(フォワードエンジニア)の使い方【初心者におすすめ】

手順

  1. ER図(モデル)を作成済みであることを確認
    • テーブル、カラム、主キーなどがER図上で設定されている状態。
  2. メニューから実行
    • 上部メニューの Database > Forward Engineer... を選択
  3. ウィザードに沿って進める
    • 接続先のデータベースを選択(事前にConnectionが必要)
    • オプションで「DROP TABLE」や「CREATE SCHEMA」などチェック可能
    • 「Generate SQL Script」も出力可能
  4. Finishで実行
    • これでER図で設計した通りにテーブルが作成されます

メリット

メリット説明
シンプル手順が少なく直感的でわかりやすい
学習向きSQLを意識せず設計から実行までできる
ミスが少ないモデルと実行内容が一致しやすい

デメリット

デメリット説明
差分反映ができないテーブルをすでに作成済みの場合、再度上書きが必要
実行前確認がやや弱い差分検知は行わないので注意が必要

例え話で理解!

Forward Engineerは「設計図から一気に建物を建てる」ようなイメージです。
ゼロから作るときにはとても便利だけど、すでに建物があれば壊して作り直すしかない。
だから、最初の1回目にはうってつけの方法なんです。


Synchronize Model(モデルとデータベースの同期)

どんなときに使う?

  • ER図を編集して、すでに存在するデータベースと差分を反映したいとき
  • 本番DBと開発DBで構造を揃えたいとき

同期の流れ(全体像)

以下の手順で、ERモデルとMySQLデータベースの構造を同期できます。

  1. モデルを更新する
  2. Synchronize Modelを起動する
  3. 接続先データベースを指定する
  4. 差分を比較する
  5. 実行SQLを確認して実行する
  6. 同期が完了する

ステップごとの詳しい説明

1. モデル(.mwbファイル)を作成または修正する

まず、MySQL WorkbenchのER図上でテーブルの追加・カラムの変更・キー制約の修正などを行います。
これが「設計図」にあたります。

2. Synchronize Model を起動する

上部メニューの「Database」から「Synchronize Model...」を選択します。
ウィザード形式の同期操作画面が立ち上がります。

3. 同期先のデータベースに接続する

すでに設定済みのMySQL接続を選択し、同期対象とするデータベース(スキーマ)を選びます。
接続が成功すると、次に進めます。

4. モデルとデータベースの差分を比較する

このステップでは、ER図と実際のデータベースを比較し、次のような差分を検出します。

対象項目差分の例反映されるSQL
テーブル新規追加CREATE TABLE
カラム型の変更ALTER TABLE MODIFY COLUMN
外部キー追加ALTER TABLE ADD CONSTRAINT

この一覧を見ながら、本当に反映してよい変更かを確認しましょう。

5. 生成されたSQLを確認する

次の画面では、差分に応じたSQL文が自動生成されます。

  • 実行前に必ず内容を確認します。
  • 特に削除系(DROP)やデータ破壊につながる命令が含まれていないかに注意してください。

内容に問題がなければ「Execute」をクリックします。

6. 同期完了

SQLの実行が完了すると、モデルの構造がそのままデータベースに反映されます。
これで同期作業は終了です。

モデル同期時の注意点

注意点説明
モデルとDBの整合性モデル側だけが変更されていると、思わぬ差分が発生することがあります。作業前に確認を。
SQLの実行前に必ずレビュー自動生成されたSQLが正しくても、安全性を確認することが重要です。
本番DBには慎重に適用する検証環境で先に試すなど、慎重なステップを踏みましょう。

シンプルな例で理解する

モデルとDBの同期は、「改装設計図をもとに、実際の建物に手を入れる」作業に似ています。

  • ER図:設計図
  • データベース:既存の建物
  • Synchronize:設計図と現場を比較し、必要な工事だけを行う

無駄な工事はせず、必要最小限の変更だけを正確に行うのが、この機能の利点です。

メリット

メリット説明
差分を検知できる既存DBとモデルを比較できる
柔軟な運用が可能一部だけ変更する運用がしやすい
実行内容を確認できるSQLの内容を1つずつ確認してから実行できる

デメリット

デメリット説明
操作が少し複雑差分確認や確認ステップが多い
モデルとDBの整合性が必要どちらかにミスがあると混乱の元に

例え話で理解!

Synchronizeは「既存の建物をリフォーム」するようなものです。
図面を少し変えたから、対応する部分だけ工事をする。手間はかかるけど柔軟なんです。


はじめはForward Engineerから始めよう!

初学者向け研修では、Forward Engineerだけで十分です。

なぜかというと:

  • 「ゼロから構築」するケースがほとんど
  • 複雑な差分管理が不要
  • 操作に迷いが少ない

ある程度MySQLに慣れてきたら、「Synchronize Model」も段階的に学んでいけば大丈夫です!


今後の学習の指針

このあとステップアップするには、以下のことにチャレンジしてみるとよいでしょう。

  1. Forward Engineerで出力されるSQLを読んでみる
    • CREATE TABLE文を理解しよう
  2. モデルとSQLの対応関係を理解する
    • どの設定がSQLのどこに反映されるのかを観察する
  3. Synchronize Modelの差分検知を試してみる
    • 意図的に変更を加えて、同期処理の流れを確認
  4. リバースエンジニアリングも学ぶ
    • 既存のDBからER図を作成する方法も覚えておくと便利

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。