Django CharField主键不起作用,自动创建rowid主键

San*_*Kim 1 python sqlite django primary-key rowid

我正在将 Django 模型用于 SQLite 数据库。

我定义了 CharField 主键(例如属性的名称A),但同步的物理数据库显示Django另一个主键rowid而不是A

我尝试删除表格并重新同步几次,但仍然相同。

为什么?

class TestTable(models.Model):
    A = models.CharField(max_length=10, primary_key=True, db_column='A')
Run Code Online (Sandbox Code Playgroud)

- - - - - - - - - - - 编辑 - - - - - - - - - - - -

Django版本是1.8.3

Bra*_*out 5

默认情况下,SQLITE 数据库始终创建 rowid 列。这是 SQLITE 用于管理数据库的实际主键。这与您在其他 SQL 数据库中看到的不同,但 SQLITE 在更多方面都有很大不同。

有关更多信息,请参阅https://www.sqlite.org/rowidtable.html

PS我知道这已经晚了两年,但如果不是OP的话,它可能会对某人有所帮助。