当我在 EER 图中添加 POINT 类型的列时,我可以对该图做些什么,以便当我自动生成脚本时,SRID 4326 附加到 CREATE TABLE 脚本吗?如果我不设置该数字,则默认为零(平坦),但我确实需要 4326(球体)。
如果不可能,这是否意味着我无法自动将模型与服务器同步,而必须始终手动添加这些更改?
我也想不通。我相信 MySQL Workbench 目前不支持向列添加 SRID。
为了检查它是否确实不受支持,我执行了以下操作:
“好”消息是,由于不支持它,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;
有一个与此问题相关的错误报告: https://bugs.mysql.com/bug.php?id=111745