Как определить пустой полигон для пространственного столбца в MySQL?

#mysql #database-design #spatial

#mysql #проектирование базы данных #пространственный

Вопрос:

Я пытаюсь создать пространственный индекс над столбцом таблицы ( bbox polygon default NULL ), но получаю ошибку: All parts of a SPATIAL index must be NOT NULL .

Проблема в том, что я предполагал, что некоторые строки будут содержать нули. Вопрос в том, есть ли способ объявить столбец с пустым полигоном по умолчанию?

Комментарии:

1. хорошо, я застрял с этим. Мне очень нужно, чтобы мой столбец содержал какие-то пустые значения, и я хочу использовать преимущества пространственного индексирования. Может ли быть какое-либо другое решение в моем случае? (mysql обязательно)

2. К сожалению EMPTY , не работает в MySQL. dev.mysql.com/doc/refman/5.1/en /…

3. Хорошо, кажется, проще перейти на PostGIS Postgres, чем пытаться использовать ГИС в MySQL.

4. Разделение полей geo может быть разумным решением (наличие вторичной таблицы с id и polygon ). Переместите одно поле в другую таблицу. Записи без полигонов могут не иметь соответствующих записей в другой таблице, поэтому соединение вернет значение null, но вы сможете использовать пространственный индекс вторичной таблицы.

Ответ №1:

Просто определите столбец NOT NULL и no default.

пространственные столбцы имеют неявное значение по умолчанию «пустой».

К сожалению, потому что при вставке вы получаете предупреждение о том, что значения по умолчанию нет; но у вас также не может быть явного значения по умолчанию.

Комментарии:

1. Вау! Извините, только что понял, что этому вопросу более 2 лет… Это было в верхней части списка неотвеченных…