#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 лет… Это было в верхней части списка неотвеченных…