Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Không thể khôi phục lỗi Geometry Backup MySQL 5.7

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;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL là gì:Tổng quan

  2. MySQL InnoDB khóa chết khi CHỌN với khóa độc quyền (CHO CẬP NHẬT)

  3. Docker php:5.6-Apache Development Environment thiếu quyền trên volume mount

  4. Thời gian tạo bảng Innodb

  5. Đã xảy ra lỗi với trình gộp kết nối Hibernate DB c3p0