首页 > 解决方案 > SqlAlchemy(1366,“不正确的字符串值:'\\xB4\\xEB\\xC7\\xD1\\xB9\\xCE...' 列 'VARIABLE_VALUE' 在第 484 行”)

问题描述

(1366,“第 484 行的列 'VARIABLE_VALUE' 的字符串值不正确:'\xB4\xEB\xC7\xD1\xB9\xCE...'”)

每当我尝试插入一行(对于任何表)时都会发生此错误但我没有任何包含“VARIABLE_VAULE”列的表。

SELECT DISTINCT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME IN ('VARIABLE_VALUE')
    AND TABLE_SCHEMA='sw';  /* nothing comes up */

如何找到导致警告的表?

标签: mysqlsqlalchemy

解决方案


传统上用于 Unicode 的编码是“utf8”。然而,对于 MySQL 5.5.3 版本,引入了新的 MySQL 特定编码“utf8mb4”,从 MySQL 8.0 开始,如果在任何服务器端指令中指定纯 utf8,服务器会发出警告,替换为utf8mb3. 这种新编码的基本原理是因为 MySQL 的传统 utf-8 编码只支持最多三个字节而不是四个字节的代码点。因此,当与包含大小超过三个字节的代码点的 MySQL 数据库通信时,如果数据库和客户端 DBAPI 都支持,则首选此新字符集,如下所示:

e = create_engine(
    "mysql+pymysql://scott:tiger@localhost/test?charset=utf8mb4")
All modern DBAPIs should support the utf8mb4 charset.

在此处输入链接描述


推荐阅读