3140: ER_INVALID_JSON_TEXT: Invalid JSON text (texte JSON invalide)
MySQLQue signifie cette erreur ?
Un texte JSON invalide (syntaxiquement incorrect) a été passé à une colonne JSON ou à une fonction JSON. MySQL refuse l'opération car il ne peut pas analyser la valeur en tant que JSON.
Cause
Guillemet/crochet non fermé, virgule finale, guillemets simples, erreurs de caractères d'échappement ou texte brut envoyé à une colonne JSON. Apparaît lorsqu'un texte mal formé est passé à des fonctions telles que JSON_SET, JSON_INSERT, ou à une colonne de type JSON.
Comment la corriger
Corrigez le texte JSON pour obtenir une syntaxe valide : utilisez des guillemets doubles, supprimez les virgules finales, vérifiez les échappements. Testez la validité du texte : SELECT JSON_VALID('{...}'); (renvoie 1 s'il est valide). Utilisez une bibliothèque fiable pour sérialiser le JSON dans la couche applicative et validez-le avant de l'envoyer au serveur.
Autres entrées pour ce moteur
- 1118ER_TOO_BIG_ROWSIZE: Row size too large (taille de ligne trop grande)
- 1170ER_BLOB_KEY_WITHOUT_LENGTH: BLOB/TEXT column used in key specification without a key length (colonne BLOB/TEXT utilisée dans une clé sans longueur de clé)
- 1592ER_BINLOG_UNSAFE_STATEMENT: Unsafe statement written to the binary log (instruction non sûre écrite dans le binary log)
- 1526ER_NO_PARTITION_FOR_GIVEN_VALUE: Table has no partition for value (aucune partition de la table pour cette valeur)
- 1049Unknown database 'name'
- 1364Field 'name' doesn't have a default value (le champ 'name' n'a pas de valeur par défaut)
- 1206The total number of locks exceeds the lock table size (le nombre total de verrous dépasse la taille de la table des verrous)