我有一些用于 MySQL 的 SQL,可以將一個點和一個多邊形都插入到資料庫中。此代碼有效。但是,我在網上看到有多種方法可以做到這一點,目前尚不清楚什么是正確的方法。
這是我目前的方式:http : //sqlfiddle.com/#!9/df0e51/1
CREATE TABLE `Grid` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`point` POINT DEFAULT NULL,
`polygon` polygon DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB;
INSERT INTO `Grid`(point, polygon)
VALUES(POINTFROMTEXT('POINT(49.227239 17.564932)'),POLYGONFROMTEXT('POLYGON((0 5, 2 5, 2 7, 0 7, 0 5))'));
然而,我也看到了使用幾何型別和包含 ST_GeomFromText 的插入陳述句來實作完全相同的事情的教程。
我的問題是,是否有正確的方法來做到這一點,或者至少,我怎么知道何時使用其中一個?
uj5u.com熱心網友回復:
有幾個原因更喜歡ST_GeomFromText:
- 它比 MySQL
POINTFROM/POLYGONFROM函式更通用,因為它查看文本定義并確定它是哪種幾何圖形,使您的代碼可能更干凈。 - 帶有前綴的函式
ST_符合 Open Geospatial Consortium 為地理空間 SQL 定義的行為,因此可以跨不同資料庫型別移植。MySQL 別名 withoutST_可能只適用于 MySQL。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/396733.html
