Я хотів би зберегти деякі геометричні положення у моїй базі даних MySQL. Для цього я використовую тип даних POINT. Майже скрізь я читав, що функціяGeomFromText
слід використовувати для вставки даних у таблицю.
Однак я з’ясував, що POINT(X,Y)
також працює. Я не знайшов жодного опису, чому його GeomFromText
слід використовувати замість POINT
.
Наприклад, у мене таке просте відношення:
CREATE TABLE Site (
SiteID BIGINT UNSIGNED,
Position POINT
);
І я можу вставити значення, використовуючи наступні два варіанти:
INSERT INTO Site (
1,
GeomFromText( 'POINT(48.19976 16.45572)' )
);
INSERT INTO Site (
2,
POINT(48.19976, 16.45572)
);
Коли я переглядаю таблицю ( SELECT * FROM Site
), я бачу ту саму бінарну крапку для розташування, а коли я переглядаю координати ( SELECT *, AsText(Position) FROM Site
), я також бачу однакові значення.
То навіщо використовувати GeomFromText? Чи існують (відомі) відмінності в роботі між цими двома варіантами? Як це вирішується в інших системах баз даних, крім MySQL?
INSERT INTO Site (Position) SELECT POINT(latitude, longitude) FROM tmp
простіше, ніж...SELECT GeomFromText(CONCAT('POINT(',latitude,' ',longitude,')' )) ...