やりたこと
MySQLWorkbenchでER図を作ってそのままデータベースにDDLで流し込みたい。
経緯
今までER図を書くときはとっかかりが簡単だったのでCacooを使っていたが、その後DDLを書き起こすのが面倒くさいなと思ったので、MySQLWorkbenchで描いてみたらとても良かった。
さらにDDLを実行するところで、MySQLとMySQLWorkbenchのバージョン違いによって少しハマったので、備忘として記載。
環境
- MySQL5.7.26
- MySQLWorkbentch8.0.13
手順
基本的なDDL流し込みは以下の手順通り、フォワードエンジニアリングを行えば良い。
https://ti-tomo-knowledge.hatenablog.com/entry/2018/05/21/172936
ただし、最後のDDL実行で、以下のエラーが出てしまった。
Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VISIBLE, INDEX `fk_xxx1_idx` (`xxx_id` ASC) VISIBLE, INDEX `fk' at line 9;
原因は生成されたINDEXを作る箇所のVISIBLE
だった。
INDEX `fk_xxx1_idx` (`xxx_id` ASC) VISIBLE,
これはMySQL8.0からの仕様のため、対象のMySQLが5.7のためエラーとなった。
こちらを発生させないためには
MySQLWorkbench > Preferences > Modeling > Default Target MySQL Version
を該当のバージョンにしてから再実行すると、そのバージョンとして動作するDDLが生成される。
上記で解決して無事にDDL実行が完了した。
感想
MySQLを利用するなら、ER図はMySQLWorkbenchでの作成が一番便利だと思う。
参照