(1366,“错误的字符串值:'\ xB4 \ xEB \ xC7 \ xD1 \ xB9 \ xCE ...''第484行的'VARIABLE_VALUE'列'”
每当我尝试插入一行时(对于anytable)都会发生此错误但是我没有任何包含'VARIABLE_VAULE'列的表。
SELECT DISTINCT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME IN ('VARIABLE_VALUE')
AND TABLE_SCHEMA='sw'; /* nothing comes up */
如何找到导致警告的表格?
答案 0 :(得分:0)
发生错误是因为您试图使用错误的字符集存储表情符号。将字符集从utf8
更改为utf8mb4
答案 1 :(得分:0)
传统上,用于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.