Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Mysql 5.7.20:Nie można utworzyć wartości JSON z ciągu znaków za pomocą ZESTAWU ZNAKÓW „binary”

Mogę odtworzyć twój błąd, jeśli mój zestaw znaków sesji to binary :

mysql [localhost] {msandbox} (test) > set names binary;
Query OK, 0 rows affected (0.00 sec)

mysql [localhost] {msandbox} (test) > insert into tracking_data (route, data, user_id) values ('route', '{"route": "value"}', 1);
ERROR 3144 (22032): Cannot create a JSON value from a string with CHARACTER SET 'binary'.

Potem mogę to naprawić, ustawiając zestaw znaków sesji tak, aby pasował do tabeli:

mysql [localhost] {msandbox} (test) > set names utf8mb4;
Query OK, 0 rows affected (0.00 sec)

mysql [localhost] {msandbox} (test) > insert into tracking_data (route, data, user_id) values ('route', '{"route": "value"}', 1);
Query OK, 1 row affected (0.01 sec)

Dochodzę więc do wniosku, że ustawiłeś zestaw znaków sesji na binary .

Uruchom show session variables like 'char%'; i zobacz, co ci powie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przykładowa baza danych MySQL

  2. Prawda/Fałsz kontra 0/1 w MySQL

  3. Wydajność zapytań MySQL. Który jest najlepszy?

  4. dodaj wiele danych w pliku xml za pomocą PHP xmlwriter

  5. rekurencyjne samo zapytanie