如何在django中将BinaryField设置为主键?

问题描述 投票:0回答:1

在这段代码中我有:

IDChuyenBien = models.BinaryField(primary_key=True, max_length=8)

但是当我 makemigrations 和 migrate 时出现错误: _mysql.connection.query(自身,查询) django.db.utils.OperationalError:(1170,“在密钥规范中使用了 BLOB/TEXT 列 'IDChuyenBien',但没有密钥长度”)
虽然我使用了上面的 max_length ,但我使用的是 Django 4.2.9 连接到 Mysql

我按照以下文档操作: https://docs.djangoproject.com/en/4.2/ref/models/fields/
我也尝试过其他一些办法,但还是没有解决,因为要求传输的数据是二进制的,并且会直接保存到数据库中,而之前我没有使用主键的时候,在mysql中迁移时它也是LONGBLOB。同时只需要8字节或10字节的BINARY类型

django binary
1个回答
0
投票

所有行的主键应该是唯一的。 二进制字段只意味着0或1。它怎么可能对于超过2行是唯一的。 你需要的是 Biginteger 字段。

© www.soinside.com 2019 - 2024. All rights reserved.