Spec-Zone.ru › MySQL 8.4

13.4.7 Заполнение пространственных столбцов

После создания пространственных столбцов вы можете заполнить их пространственными данными.

Значения должны храниться во внутреннем формате геометрии, но вы можете преобразовать их в этот формат из формата Well-Known Text (WKT) или Well-Known Binary (WKB). Следующие примеры демонстрируют, как вставить значения геометрии в таблицу, преобразуя значения WKT во внутренний формат геометрии:

  • Выполните преобразование непосредственно в операторе INSERT:

    INSERT INTO geom VALUES (ST_GeomFromText('POINT(1 1)'));
    
    SET @g = 'POINT(1 1)';
    INSERT INTO geom VALUES (ST_GeomFromText(@g));
    
  • Выполните преобразование перед оператором INSERT:

    SET @g = ST_GeomFromText('POINT(1 1)');
    INSERT INTO geom VALUES (@g);
    

В следующих примерах вставляются более сложные геометрии в таблицу:

SET @g = 'LINESTRING(0 0,1 1,2 2)';
INSERT INTO geom VALUES (ST_GeomFromText(@g));

SET @g = 'POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7, 5 5))';
INSERT INTO geom VALUES (ST_GeomFromText(@g));

SET @g =
'GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(0 0,1 1,2 2,3 3,4 4))';
INSERT INTO geom VALUES (ST_GeomFromText(@g));

В предыдущих примерах используется ST_GeomFromText() для создания значений геометрии. Вы также можете использовать функции, специфичные для типа данных:

SET @g = 'POINT(1 1)';
INSERT INTO geom VALUES (ST_PointFromText(@g));

SET @g = 'LINESTRING(0 0,1 1,2 2)';
INSERT INTO geom VALUES (ST_LineStringFromText(@g));

SET @g = 'POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7, 5 5))';
INSERT INTO geom VALUES (ST_PolygonFromText(@g));

SET @g =
'GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(0 0,1 1,2 2,3 3,4 4))';
INSERT INTO geom VALUES (ST_GeomCollFromText(@g));

Приложение-клиент, которое хочет использовать представления WKB значений геометрии, отвечает за отправку правильно сформированных данных WKB в запросы к серверу. Существует несколько способов удовлетворить это требование. Например:

  • Вставка значения POINT(1 1) с использованием шестнадцатеричной синтаксической конструкции:

    INSERT INTO geom VALUES
    (ST_GeomFromWKB(X'0101000000000000000000F03F000000000000F03F'));
    
  • Приложение ODBC может отправить представление WKB, связав его с заполнительной переменной, используя аргумент типа BLOB:

    INSERT INTO geom VALUES (ST_GeomFromWKB(?))
    

    Другие программные интерфейсы могут поддерживать аналогичный механизм заполнителей.

  • В программе на C вы можете экранировать двоичное значение и включить результат в строку запроса, которая отправляется на сервер. См. .

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/populating-spatial-columns.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API