peewee.InternalError: (1071, 'Specified key was too long; max key length is 1000 bytes')

原因:使用peewee创建表时,有类似于这样的语句: field_name = CharField(primary_key=True)(也就是把char类型的字段设置成了主键。)

解释:utf8mb4 编码下 1 char = 4 bytes。而varchar默认长度为255(255*4 = 1020),超过报错显示的最大长度 1000 bytes。

解决:设置CharField的最大长度参数:max_length=num(num <= 250)

参考Python peewee.CharField() Examples

上一篇:peewee基本使用


下一篇:在peewee union select中放置一个空字段