如何格式化我的 MySql 表以避免"Incorrect string value"错误?



我使用的是Python 3.7、Django 2.0和Mysql 5.7,它们都是通过docker容器设置的。我正在尝试将以下种子数据插入到我的一个表中。。。

- model: address.state
pk: 14970
fields:
name: "Xocalu0131"
code: XCI
country: 266

这导致MySql错误,"无法加载地址。状态(pk=14750(:(1366,"不正确的字符串值:第1行列'name'的'\xC4\x81n'"(">

web_1     |   File "/usr/local/lib/python3.7/site-packages/MySQLdb/cursors.py", line 209, in execute
web_1     |     res = self._query(query)
web_1     |   File "/usr/local/lib/python3.7/site-packages/MySQLdb/cursors.py", line 315, in _query
web_1     |     db.query(q)
web_1     |   File "/usr/local/lib/python3.7/site-packages/MySQLdb/connections.py", line 239, in query
web_1     |     _mysql.connection.query(self, query)
web_1     | django.db.utils.OperationalError: Problem installing fixture '/app/maps/fixtures/state_data.yaml': Could not load address.State(pk=14750): (1366, "Incorrect string value: '\xC4\x81n' for column 'name' at row 1")

下面是我的表格描述。。。

+---------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| address_state | CREATE TABLE `address_state` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(165) NOT NULL,
`code` varchar(3) NOT NULL,
`country_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `address_state_name_country_id_a46a5987_uniq` (`name`,`country_id`),
KEY `address_state_country_id_0a4efd43_fk_address_country_id` (`country_id`),
CONSTRAINT `address_state_country_id_0a4efd43_fk_address_country_id` FOREIGN KEY (`country_id`) REFERENCES `address_country` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+---------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

如何格式化表格,以便正确插入值?该表是通过基于Django地址模块的迁移自动生成的——https://github.com/furious-luke/django-address

CHARSET=latin1是重要的位。

您可以更改表格字符集:

ALTER TABLE address_state CHARSET=utf8mb4

相关内容

最新更新