sql >> Databasteknik >  >> RDS >> Mysql

Hur kan jag importera en geoDataFrame till MySQL?

Efter att ha provat många saker märkte jag att to_sql-funktionen inte genererade rätt MySQL-syntax för att den skulle fungera. Också med metoden att byta till wkb kände MySQL fortfarande inte igen den kolumnen som geometri om jag lämnade texten som den är (se bilden i frågan).

Det som fungerade för mig var att ändra geometrifältet till sträng och uppdatera det i python så det skulle se ut så här:

Efter det fortsatte jag att använda koden nedan, där jag skickade dataramen till MySQL och sedan uppdaterade tabellen för att ställa in geometrikolumnen:

regions.to_sql('pr_regions', con=conn, schema='eq_pr_db',
               if_exists='replace', index=False)

#add column type Polygon

conn.execute('''ALTER TABLE `eq_pr_db`.`pr_regions` 
                ADD COLUMN `geom` Polygon;''')

#populate new column by applying the ST_GeomFromText function to transform the string to geometry type.

conn.execute('''UPDATE `eq_pr_db`.`pr_regions`
                SET geom =  ST_GeomFromText(geometry) ;''')



  1. kan inte ansluta till MySQL-databas med extern ip-adress

  2. SQL-fråga för att jämföra produktförsäljning per månad

  3. Hur man returnerar en lista över giltiga tidszoner i Oracle Database

  4. Bygg postgres docker-container med initialt schema