Python Django CharField主键不';t工作,自动创建rowid主键
我将Django模型用于SQLite数据库 我定义了CharField主键(例如属性Python Django CharField主键不';t工作,自动创建rowid主键,python,django,sqlite,primary-key,rowid,Python,Django,Sqlite,Primary Key,Rowid,我将Django模型用于SQLite数据库 我定义了CharField主键(例如属性A),但是由Django同步的物理数据库显示另一个主键rowid,而不是A 我试着放下桌子,重新同步了几次,但还是一样 为什么? ----------------------编辑------------------------ Django版本是1.8.3SQLITE数据库默认情况下始终创建rowid列。这是SQLITE用于管理数据库的实际主键。这与您在其他SQL数据库中看到的不同,但SQLITE在更多方面有很大
A
),但是由Django
同步的物理数据库显示另一个主键rowid
,而不是A
我试着放下桌子,重新同步了几次,但还是一样
为什么?
----------------------编辑------------------------
Django版本是1.8.3SQLITE数据库默认情况下始终创建rowid列。这是SQLITE用于管理数据库的实际主键。这与您在其他SQL数据库中看到的不同,但SQLITE在更多方面有很大的不同 有关更多信息,请查看
另外,我知道这已经晚了2年,但如果不是这样的话,可能会对某些人有所帮助。您使用的是什么Django版本?如果>=1.8,您的迁移是最新的吗?Django将添加
id
作为主键,而不是rowid
。您可能有一些旧的db/表/迁移导致了该行为。
class TestTable(models.Model):
A = models.CharField(max_length=10, primary_key=True, db_column='A')