#mysql-workbench #workbench
#mysql-workbench #workbench
Вопрос:
Когда я добавляю столбец с типом POINT на диаграмме EER, могу ли я что-нибудь сделать с этой диаграммой, чтобы при автоматической генерации сценариев SRID 4326 присоединялся к сценарию СОЗДАНИЯ ТАБЛИЦЫ? Если я не настрою это число, то по умолчанию оно равно нулю (плоское), но мне нужно 4326 (сфера).
Если это невозможно, означает ли это, что я не могу автоматически синхронизировать свою модель со своим сервером и мне приходится постоянно добавлять эти изменения вручную?
Ответ №1:
Я тоже не мог этого понять. Я считаю, что добавление SRID в столбец в настоящее время не поддерживается MySQL Workbench.
Чтобы проверить, действительно ли он не поддерживается, я сделал следующее:
- Добавлен SRID в столбец существующей базы данных
- Обратная разработка сценария этой БД (с использованием 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;
Комментарии:
1. Спасибо вам за это, очень полезно. Последнее утверждение вызывало у меня проблемы с MySQL 8.0.30, я использовал это вместо
CREATE SPATIAL INDEX `my_idx` ON my_table (`my_column`) VISIBLE
.