sql >> Database teknologi >  >> RDS >> Mysql

Kan ikke gendanne Geometry Backup MySQL 5.7-fejl

Det ligner MySQL 5.7 er mere streng i geometrityper end MySQL 5.6 . Som sådan data, der var gyldige i 5.6 er nu ugyldig i 5.7 .

Dette var rettelsen til MySQL-fejl #76337 , i udgivelse MySQL 5.7.8 .

I dette tilfælde en LINESTRING blev gemt i en kolonne af typen POINT . Dette virkede i næsten et årti, men ikke mere. Ændring af kolonnen til at skrive LINESTRING rettet ovenstående indlæsningsfejl.

-- The Fix - run on MySQL 5.6 database before Upgrade/Export
ALTER TABLE routes MODIFY COLUMN route_path LINESTRING;

Andre fejltilstande

Denne fejl manifesterer sig også på geometriske kolonner, hvor de var i stand til at fortsætte NULL-geometrier (men ikke officielt er NULL). MySQL IS NULL ville sige ikke null, men asText( myGeo ) returnerede NULL under MySQL 5.7 . Eksport af disse til en streng i MySQL 5.6 returnerede '' , tom streng. Således '' geometri output fra 5.6 var og ugyldig input for 5.7.

Rettelsen var at annullere disse.

-- Convert NULL geometries to actual NULL's
UPDATE myTable SET myGeo = NULL WHERE asText(myGeo) IS NULL;



  1. Hvordan henter jeg værdier fra en indlejret Oracle-procedure?

  2. 100% sikker måde at gemme html i MySQL

  3. Laravel:Strengdata, højre trunkeret:1406 Data for lange til kolonne

  4. Hvordan håndterer man BLOB og CLOB i olingo v2?