sql >> Databasteknik >  >> RDS >> Mysql

Mysql 5.7.20:Kan inte skapa ett JSON-värde från en sträng med CHARACTER SET 'binary'

Jag kan återskapa ditt fel om min sessionsteckenuppsättning är 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'.

Sedan kan jag fixa det genom att ställa in sessionsteckenuppsättningen så att den matchar 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å jag drar slutsatsen att du har ställt in sessionsteckenuppsättningen till binary .

Kör show session variables like 'char%'; och se vad det säger dig.



  1. Viktig PostgreSQL-övervakning - Del 1

  2. Hur man använder MELLAN-operatören i SQL Server

  3. SQL-uppdateringsfråga med joins

  4. Java JDBC ignorerar setFetchSize?