2016-10-09 4 views
0

J'avais une table normale. Maintenant, j'ai ajouté une colonne spatialeRequête spatiale MySQL

ALTER TABLE roadData ADD pt POINT ; 

et maintenant ma table a des valeurs nulles: enter image description here

maintenant dans l'instruction d'insertion de tutoriel MySQL est utilisé:

INSERT INTO geom VALUES (ST_GeomFromText('POINT(1 1)')); 

mais je veux le faire dans une table existante supprimant les valeurs nulles et insérant des données de point basées sur la latitude et la longitude dans chaque ligne. Comme

INSERT INTO pt VALUES (ST_GeomFromText('POINT(latitude longitude)')); 

et de faire également un index spatial. Comment puis-je le faire?

Répondre

1

C'est une UPDATE STATEMENT et non un INSERT STATEMENT, essayez ceci:

UPDATE geom t 
SET t.pt = ST_GeomFromText(CONCAT('POINT(',t.longitude,t.latitude,')')) 
+0

Sagi merci effectivement la réponse u dit pour une jointure croisée prenait beaucoup de temps. donc @bamar a dit d'utiliser l'espace si tentant. –

+0

et ALTER TABLE geom AJOUTER INDEX SPATIAL (g); pour créer un index –

+0

Pour l'index spatial: ALTER TABLE roadData ADD SPATIAL INDEX (pt); –