sql >> データベース >  >> RDS >> Mysql

ジオメトリバックアップMySQL5.7エラーを復元できません

    MySQL 5.7のように見えます ジオメトリタイプでは、MySQL 5.6よりも厳密です 。そのため、有効だったデータ 5.6では5.7では無効になりました 。

    これは、 MySQL Bug#76337 の修正でした。 、リリースでは MySQL 5.7.8

    この場合、LINESTRING タイプPOINTの列に格納されていました 。これはほぼ10年間機能しましたが、それ以上は機能しませんでした。列を「LINESTRING」と入力するように変更します 上記の読み込みエラーを修正しました。

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

    その他の障害モード

    このバグは、NULLジオメトリを永続化できた(ただし、正式にはNULLではない)ジオメトリ列にも現れます。 MySQL IS NULL nullではなく、asText( myGeo ) 返されたNULL MySQL 5.7の下 。これらをMySQL5.6の文字列にエクスポートすると、''が返されました 、空の文字列。したがって、'' 5.6からのジオメトリ出力は5.7の無効な入力でした。

    修正はこれらを無効にすることでした。

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



    1. PDOのbind_resultに相当するものは何ですか

    2. SQL SELECT SUM

    3. NetBeansで編集不可能/生成されたコードを変更する方法

    4. phpmysqlではajaxデータ応答は常に0です