Пространственный индекс не будет использоваться, поскольку у него нет атрибута SRID.MySql

Форум по Mysql
Ответить
Anonymous
 Пространственный индекс не будет использоваться, поскольку у него нет атрибута SRID.

Сообщение Anonymous »

Я сейчас очень запутался, потому что не могу заставить это работать. У меня есть адрес tbl_address, в котором уже есть долгота и широта. Я хочу добавить пространственный индекс для моего поиска. Итак, я хочу добавить столбец местоположения POINT в свою базу данных. Я попробовал вот это:

Код: Выделить всё

alter table tbl_address
add column location POINT GENERATED ALWAYS AS (ST_SRID(POINT(longitude, latitude), 4326)) STORED NOT NULL;
Но когда я затем пытаюсь добавить свой SI, я получаю обратно следующее предупреждение:

Код: Выделить всё

CREATE SPATIAL INDEX idx_location ON tbl_address (location);
0 row(s) affected, 1 warning(s): 3674 The spatial index on column 'location' will not be used by the query optimizer since the column does not have an SRID attribute. Consider adding an SRID attribute to the column. Records: 0  Duplicates: 0  Warnings: 1
Я понимаю, что только мои записи имеют srid 4326, но если я попытаюсь добавить его в сам столбец (POINT SRID 4326), я получаю синтаксическую ошибку в GENERATED ALWAYS AS.
Как мне заставить это работать? Было бы здорово обновлять местоположение при изменении долготы/широты. Действительно ли мне нужно реализовать триггер? Я использую MySQL 8.
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/798 ... -attribute
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»