Python Peewee mysql无法在TextField上创建唯一索引
我正在尝试创建一个具有唯一索引的模型 我的模型是这样的:Python Peewee mysql无法在TextField上创建唯一索引,python,peewee,Python,Peewee,我正在尝试创建一个具有唯一索引的模型 我的模型是这样的: class ModelA(Model): FieldA = CharField() class ModelB(Model): fieldA = TextField(unique=True) fieldB = CharField(max_length=10) fieldC = BooleanField(default=False) fieldD = ForeignKeyField(ModelA)
class ModelA(Model):
FieldA = CharField()
class ModelB(Model):
fieldA = TextField(unique=True)
fieldB = CharField(max_length=10)
fieldC = BooleanField(default=False)
fieldD = ForeignKeyField(ModelA)
我正在创建如下表:
db.create_tables([ModelA, ModelB])
我的问题是,在创建表之后,modelbielda上没有索引
当我将ModelB.fieldA类型更改为CharField而不是TextField时:
class ModelA(Model):
FieldA = CharField()
class ModelB(Model):
fieldA = CharField(unique=True)
fieldB = CharField(max_length=10)
fieldC = BooleanField(default=False)
fieldD = ForeignKeyField(ModelA)
它工作正常,并为ModelB.fieldA创建了索引
有什么原因我不能在TextField类型上创建唯一索引吗?
如何在ModelB.fieldA上创建唯一索引并保持其类型TextField
谢谢MySQL要求您为文本类型的索引指定前缀: 因此,您需要一个索引,如:
CREATE INDEX my_index ON my_model(text_column (100));