Arbeiten am räumlichen Index (MySQL)MySql

MySQL DBMS-Forum
Anonymous
 Arbeiten am räumlichen Index (MySQL)

Post by Anonymous »

Ich bin jetzt sehr verwirrt, weil ich das nicht zum Laufen bringen kann. Ich habe eine tbl_address, die bereits Längen- und Breitengrad enthält. Ich möchte einen räumlichen Index für meine Suche hinzufügen. Daher möchte ich meiner Datenbank eine Spalte „location POINT“ hinzufügen. Ich habe Folgendes ausprobiert:

Code: Select all

alter table tbl_address
add column location POINT GENERATED ALWAYS AS (ST_SRID(POINT(longitude, latitude), 4326)) STORED NOT NULL;
Aber wenn ich dann versuche, meine SI hinzuzufügen, erhalte ich diese Warnung zurück:

Code: Select all

CREATE SPATIAL INDEX idx_location ON tbl_address (location);
0 row(s) affected, 1 warning(s): 3674 The spatial index on column 'location' will not be used by the query optimizer since the column does not have an SRID attribute. Consider adding an SRID attribute to the column. Records: 0  Duplicates: 0  Warnings: 1
Ich habe festgestellt, dass nur meine Einträge die SRID 4326 haben, aber wenn ich versuche, sie zur Spalte selbst hinzuzufügen (PUNKT SRID 4326), erhalte ich einen Syntaxfehler bei GENERATED ALWAYS AS.
Wie kann ich dafür sorgen, dass es funktioniert? Es wäre toll, wenn der Standort aktualisiert würde, wenn sich der Längen-/Breitengrad ändert. Muss ich wirklich einen Trigger implementieren? Ich verwende MySQL 8.
Danke!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post