添加列时如何将 SRID 4326(空间类型)添加到 Workbench?

How can I add SRID 4326 (Spatial Types) to Workbench when adding columns?

当我在 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;