Có vẻ như MySQL 5.7
nghiêm ngặt hơn trong các loại Hình học so với MySQL 5.6
. Do đó, dữ liệu hợp lệ trong 5,6 hiện không hợp lệ trong 5,7 .
Đây là bản sửa lỗi cho Lỗi MySQL # 76337 , trong bản phát hành MySQL 5.7.8 .
Trong trường hợp này, một LINESTRING
đang được lưu trữ trong một cột thuộc loại POINT
. Điều này đã hoạt động trong gần một thập kỷ, nhưng không còn nữa. Thay đổi cột thành nhập LINESTRING
đã sửa lỗi tải ở trên.
-- The Fix - run on MySQL 5.6 database before Upgrade/Export
ALTER TABLE routes MODIFY COLUMN route_path LINESTRING;
Các chế độ lỗi khác
Lỗi này cũng biểu hiện trên các cột hình học nơi chúng có thể duy trì hình học NULL (nhưng không chính thức là NULL). MySQL IS NULL
sẽ nói không phải null, nhưng asText( myGeo )
trả về NULL
trong MySQL 5.7 . Xuất chúng thành một chuỗi trong MySQL 5.6 trả về ''
, chuỗi trống. Do đó, ''
đầu ra hình học từ 5,6 là và đầu vào không hợp lệ cho 5,7.
Cách khắc phục là vô hiệu hóa những điều này.
-- Convert NULL geometries to actual NULL's
UPDATE myTable SET myGeo = NULL WHERE asText(myGeo) IS NULL;