mysql - 如何在没有工作台的情况下将 .mwb 转换为 .sql

标签 mysql sql workbench

我有一个 .mwb 数据库,但我需要将其加载到我的 phpmyadmin 中(我已经安装了 Wamp)。 我尝试安装 mysql workbench,但它检测到另一个 mysql,我取消了安装。

如何将其转换为获取此 .mwb 的 .sql 文件?

谢谢!

最佳答案

Workbench 模型是一个压缩文件(换句话说,是重命名的 ZIP 文件)。您应该能够使用任何像样的存档程序打开它。里面有一个 XML 文件。我不知道格式是否有记录,但看起来很简单:

<value type="object" struct-name="db.mysql.Table" id="{DF899AC1-6CAA-42A8-A584-A663E17596E9}" struct-checksum="0x1a403946">
  <value type="string" key="avgRowLength"></value>
  <value type="int" key="checksum">0</value>
  <value _ptr_="0971BA88" type="list" content-type="object" content-struct-name="db.mysql.Column" key="columns">
    <value type="object" struct-name="db.mysql.Column" id="{A742D230-C0CE-48C7-88E0-B5DB74409FE4}" struct-checksum="0x783b5183">
      <value type="int" key="autoIncrement">1</value>
      <value type="string" key="characterSetName"></value>
      <value _ptr_="0971BF08" type="list" content-type="object" content-struct-name="db.CheckConstraint" key="checks"/>
      <value type="string" key="collationName"></value>
      <value type="string" key="datatypeExplicitParams"></value>
      <value type="string" key="defaultValue"></value>
      <value type="int" key="defaultValueIsNull">0</value>
      <value _ptr_="0971BF98" type="list" content-type="string" key="flags">
        <value type="string">UNSIGNED</value>
      </value>
      <value type="int" key="isNotNull">1</value>
      <value type="int" key="length">-1</value>
      <value type="string" key="name">invoice_id</value>
      <value type="int" key="precision">10</value>
      <value type="int" key="scale">-1</value>
      <link type="object" struct-name="db.SimpleDatatype" key="simpleType">com.mysql.rdbms.mysql.datatype.int</link>
      <value type="string" key="comment"></value>
      <value type="string" key="oldName">invoice_id</value>
      <link type="object" struct-name="GrtObject" key="owner">{DF899AC1-6CAA-42A8-A584-A663E17596E9}</link>

因此,您基本上需要花几天时间编写一个解析 XML 并编写 SQL 代码的脚本。

(老实说,考虑到原始工作台是免费且跨平台的,我认为这是浪费时间。)

关于mysql - 如何在没有工作台的情况下将 .mwb 转换为 .sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19956525/

相关文章:

mysql - 如何在 MySQL 中创建关系

sql - 如何在日期和时间之间运行查询?

MySQL 假设我不想要基于所使用的运算符的任何结果

php - 工作台输入错误数据

mysql - MYSQL查询中高效转换时区的最佳方式

mysql - 只是无法远程连接到 MySQL EC2 ubuntu 实例

mysql - 保存 SQL 语句的结果以在别处使用

mysql - 如何在MySQL(使用Workbench)中制作一个二维数组作为表中的键?

NoSQL Workbench 对 Dynamodb 中本地二级索引的支持

mysql - Rails 将主 ID 更改为 64 位 bigint