mysql-workbench - 添加列时如何将 SRID 4326(空间类型)添加到工作台?

标签 mysql-workbench workbench

当我在 EER 图中添加 POINT 类型的列时,我可以对该图做些什么,以便当我自动生成脚本时,SRID 4326 附加到 CREATE TABLE 脚本吗?如果我不设置该数字,则默认为零(平坦),但我确实需要 4326(球体)。

如果不可能,这是否意味着我无法自动将模型与服务器同步,而必须始终手动添加这些更改?

最佳答案

这个我也想不通。我相信 MySQL Workbench 目前不支持向列添加 SRID。

为了检查它是否确实不受支持,我执行了以下操作:

  1. 向现有数据库的列添加了 SRID
  2. 逆向设计了该数据库的脚本(使用 Workbench)
  3. 检查脚本是否包含为该列设置的 SRID
  4. 很失望它没有......

“好”消息是,由于不支持它,MySQL Workbench 在同步源时不会发现列上丢失的 SRID。

这意味着,一旦您自己在列上设置了 SRID,以后同步时就不会出现任何问题。

请注意,为了在列上设置 SRID,该列上不能有(空间)索引。因此,您必须删除索引,设置SRID,然后重新添加索引。

下面是一个简短的脚本,我用它来执行此操作。不要忘记将其更新到您的用例:

DROP INDEX `my_idx` ON my_table;
ALTER TABLE my_table MODIFY COLUMN my_column POINT NOT NULL SRID 4326;
ALTER TABLE my_table ADD SPATIAL INDEX `my_idx` (`my_column`) VISIBLE;

关于mysql-workbench - 添加列时如何将 SRID 4326(空间类型)添加到工作台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64518714/

相关文章:

Windows 10 上的 MySQL WorkBench 6.3 CE 配置文件位置

mysql - 为什么在慢速网络上工作时 mysql workbench 编辑器这么慢?

mysql - 我想在 mysql workbench 表中同一列的同一字段中有 2 个不同的值?

mysql - 如何使用 MySQL Workbench 查找字符串中多次出现的子字符串?

mysql - 我可以使用 MySQL Workbench 来创建 MariaDB 吗?

mysql - 通过 Aginity Workbench for Netezza 导入 excel 文件时出错

mysql - 当 SQL 在 SQL 选项卡中正常运行时,为什么创建此 View 会导致错误 1350?

mysql - 如何在MySql存储过程的一个select语句中选择多个avg(列)?

mysql - 尝试在 xampp 服务器中导入 SQL 文件会返回错误

mysql-workbench - 如何更改 MySQL Workbench 界面字体大小?