MySQL WorkBench 放大 ERD Diagram 圖紙 和 幾個常用功能

MySQL WorkBench 的 ERD 越化越大,但是畫紙並不會自己變大,需要手動調整。

MySQL WorkBench 放大 ERD Diagram 圖紙 和 幾個常用功能

MySQL WorkBench 放大 ERD Diagram 圖紙 和 自動排版方法:

  • ERD Diagram 畫面圖紙不夠大,要放大:Model → Diagram Properties and Size
  • ERD Diagram 自動排版: Arrange → Autolayout

MySQL WorkBench ERD 畫好後,將資料 Export 出來,再 Import 進去時,INSERT 的 Data 不會進去,需要用下述步驟自己匯入:

  • Workbench → Model → Model Notes → Inserts → Import records from an external file.  (這個 Model 並不是 Menu 的 Model,用比較完整講法是下述)
  • Workbench → 選 ERD 的 Table 圖(Model)(點兩下) → 下面選擇到上面Tab (Inserts) -> 第二列有圖示Export/Import,選擇「Import records from an external file.」(挑選 CSV) → 這樣子就可以把資料匯入
  • 若要將匯出的 INSERT 轉換成 CSV 可以使用此程式:
    • Export SQL 檔名:database-export-data.sql
    • vim workbench-sql-insert-gen-csv.php
      <?php
      // 此檔案是使用 MySQL Workbench export 的 SQL 檔案 (INSERT 語法需要為同一行)
      // 取出 export 的 sql,然後將資料產生成 csv
      //   INSERT INTO `dbname`.`table1` (`col1`, `col2`, `col3`) VALUES ('1', '2', '3');
      //   INSERT INTO `dbname`.`table1` (`col1`, `col2`, `col3`) VALUES ('2', '3', '4');
      //   INSERT INTO `dbname`.`table2` (`col1`, `col2`, `col3`) VALUES ('3', '5', '6');
      $inserts = file('database-export-data.sql');
      
      foreach ($inserts as $insert) {
          if (strtolower(substr($insert, 0, 6)) != 'insert')
              continue;
      
          preg_match('/INTO `.*?`\.`(.*?)` \((.*?)\) VALUES \((.*?)\)/', $insert, $m);
      
          // save to TABLE_NAME.csv
          if (file_exists($m[1] . '.csv')) {
              file_put_contents($m[1] . '.csv', $m[3] . "\n", FILE_APPEND | LOCK_EX);
          } else {
              file_put_contents($m[1] . '.csv', str_replace(['`', ' '], ['', ''], $m[2]) . "\n", FILE_APPEND | LOCK_EX);
              file_put_contents($m[1] . '.csv', $m[3] . "\n", FILE_APPEND | LOCK_EX);
          }
          // print_r($m);
      }
      ?>
  • 註:Workbench 在 Import 時,INSERT data 無法載入,所以得要靠上述使用 CSV 匯入各個 Table,若想要每次開啟都可以出現有 Data 的,就需要直接儲存 .mwb (save Model)

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料