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

mysqlテーブルのエンコーディングを変更するときにマイナスの影響はありますか?

    危険 それだと思います ALTER 既存のテキストを破棄します。

    また...あなたの「名前」は中国語に見えるので、漢字を保存したいと思いますか?その場合は、utf8mb4を使用する必要があります 、utf8だけではありません 。これは、一部の漢字が4バイトを使用するためです(Unicode BMPには含まれていません)。

    2つのステップが必要だと思います :

    ALTER TABLE notebooks MODIFY comments BLOB;
    ALTER TABLE notebooks MODIFY comments TEXT
              CHARACTER SET utf8mb4  COLLATE utf8mb4_general_520_ci;
    

    それ以外の場合、latin1文字 ut8に「変換」されます。しかし、あなたが本当に列に中国語を持っているなら、あなたはlatin1を持っていません。上記の2段階の変更は、(1)文字セットの知識をオフにし、(2)バイトが実際にutf8mb4でエンコードされていることを確認します。

    より安全に 、最初に行う

    RENAME TABLE notebooks TO old;
    CREATE TABLE notebooks LIKE old;
    INSERT INTO notebooks SELECT * FROM old;
    

    次に、2つのALTERを実行し、結果をテストします。問題が発生した場合は、RENAMEできます 古いコピーを取り戻すため。



    1. Ubuntu18.04にNextcloud15をインストールする方法

    2. アクセス時にインベントリデータベースを作成する方法

    3. MySqlに16進値を挿入します

    4. INT値+1を更新して新しい値を返すことはできますか?