sql >> Database teknologi >  >> RDS >> Mysql

Mysql 5.7.20:Kan ikke oprette en JSON-værdi fra en streng med CHARACTER SET 'binary'

Jeg kan genskabe din fejl, hvis mit sessionstegnsæt er 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'.

Så kan jeg rette det ved at indstille sessionstegnsættet til at matche tabellen:

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)

Så jeg konkluderer, at du har sat sessionstegnsættet til binary .

Kør show session variables like 'char%'; og se, hvad det fortæller dig.



  1. Sådan formateres tal i MySQL

  2. PostgreSQL vs. MySQL:Hvilken er bedst?

  3. ROUND(dato) Funktion i Oracle

  4. Vælg et feltnavn på to ord i mySQL, kaldet fra PHP