Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Terjadi masalah saat memasukkan karakter / emoji UTF-8 4-Byte ke dalam Database MySQL saat pemicu penyisipan aktif

Ini terjadi karena information_schema.processlist menggunakan set karakter UTF8mb3. (UTF adalah alias untuk UTFmb3). Kueri sederhana ini menggambarkan hal ini:

mysql> select info, "🔥" from information_schema.processlist;
+------------------------------------------------------+------+
| info                                                 | ?    |
+------------------------------------------------------+------+
| select info, "?" from information_schema.processlist | 🔥     |
+------------------------------------------------------+------+
1 row in set, 1 warning (0,00 sec)

Warning (Code 1366): Incorrect string value: '\xF0\x9F\x94\xA5" ...' for column 'INFO' at row 1

Peringatan di atas mungkin menghasilkan kesalahan saat pemicu mencoba memasukkan konten info kolom ke tabel lain.

Saya pikir masalahnya adalah bahwa string kueri disimpan seperti di processlist tabel tanpa mengubahnya menjadi set karakter yang diharapkan. Saya telah mengajukan laporan bug tentang ini.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Melewati variabel PHP ke MySQL

  2. MySQL terus mogok

  3. ekstrak mysql tahun dari format tanggal

  4. Terjebak pada permintaan PHP

  5. Sisipkan Dimana Tidak Ada-Tanpa Kunci Utama