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

こんにちは。ゆうせいです。
今回は、MySQL WorkbenchのERモデルからテーブルを作成する方法について解説します。
MySQL Workbenchの基本操作やER図の作り方は理解している前提で進めますので、モデルの「次のステップ」にあたる内容ですね。
実は、テーブルを作成する方法には大きく分けて2つの手段があります。
- Forward Engineer(フォワードエンジニア)
- Synchronize Model(モデルとデータベースの同期)
研修など、最初のうちは1番の「Forward Engineer」を使うのがシンプルでおすすめです!
ですが、現場では2番の「同期」も使いこなせると非常に便利ですので、両方とも紹介します。
Forward Engineer(フォワードエンジニア)の使い方【初心者におすすめ】
手順
- ER図(モデル)を作成済みであることを確認
- テーブル、カラム、主キーなどがER図上で設定されている状態。
- メニューから実行
- 上部メニューの
Database
>Forward Engineer...
を選択
- 上部メニューの
- ウィザードに沿って進める
- 接続先のデータベースを選択(事前にConnectionが必要)
- オプションで「DROP TABLE」や「CREATE SCHEMA」などチェック可能
- 「Generate SQL Script」も出力可能
- Finishで実行
- これでER図で設計した通りにテーブルが作成されます
メリット
メリット | 説明 |
---|---|
シンプル | 手順が少なく直感的でわかりやすい |
学習向き | SQLを意識せず設計から実行までできる |
ミスが少ない | モデルと実行内容が一致しやすい |
デメリット
デメリット | 説明 |
---|---|
差分反映ができない | テーブルをすでに作成済みの場合、再度上書きが必要 |
実行前確認がやや弱い | 差分検知は行わないので注意が必要 |
例え話で理解!
Forward Engineerは「設計図から一気に建物を建てる」ようなイメージです。
ゼロから作るときにはとても便利だけど、すでに建物があれば壊して作り直すしかない。
だから、最初の1回目にはうってつけの方法なんです。
Synchronize Model(モデルとデータベースの同期)
どんなときに使う?
- ER図を編集して、すでに存在するデータベースと差分を反映したいとき
- 本番DBと開発DBで構造を揃えたいとき
同期の流れ(全体像)
以下の手順で、ERモデルとMySQLデータベースの構造を同期できます。
- モデルを更新する
- Synchronize Modelを起動する
- 接続先データベースを指定する
- 差分を比較する
- 実行SQLを確認して実行する
- 同期が完了する
ステップごとの詳しい説明
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」も段階的に学んでいけば大丈夫です!
今後の学習の指針
このあとステップアップするには、以下のことにチャレンジしてみるとよいでしょう。
- Forward Engineerで出力されるSQLを読んでみる
- CREATE TABLE文を理解しよう
- モデルとSQLの対応関係を理解する
- どの設定がSQLのどこに反映されるのかを観察する
- Synchronize Modelの差分検知を試してみる
- 意図的に変更を加えて、同期処理の流れを確認
- リバースエンジニアリングも学ぶ
- 既存のDBからER図を作成する方法も覚えておくと便利
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
最新の投稿
山崎講師2025年5月22日相関サブクエリと非相関(普通の)サブクエリの違いをわかりやすく解説!
山崎講師2025年5月22日【保存版】新人エンジニアのためのMySQL Workbench便利Tips10選!
山崎講師2025年5月21日【初心者向け】MySQLと標準SQLの違い10選をわかりやすく解説!
山崎講師2025年5月21日MySQL WorkbenchでBoolean型が設定できない理由と対処法