我正在try 建立一个布局大致如下的表:
class Widget(db.Model):
__tablename__ = 'widgets'
ext_id = db.Column(db.Integer, primary_key=True)
w_code = db.Column(db.String(34), unique=True)
# other traits follow...
所有字段值都是通过外部系统提供的,新的小部件会被发现,一些被忽略的特征值可能会随着时间的推移(非常缓慢)发生变化,但ext_id和w_代码保证是唯一的.考虑到ext_id值的性质,它理想地作为主键.
但是,当我创建新记录并指定ext_id值时,该值不会在存储中使用.相反,ext_id中的值遵循自动递增行为.
>>> # from a clean database
>>> skill = Widget(ext_id=7723, w_code=u'IGF35ac9')
>>> session.add(skill)
>>> session.commit()
>>> Skill.query.first().ext_id
1
>>>
我如何向SQLAlchemy指定ext_id字段应该用作主键字段而不自动递增?
注:
问题源于一个较大的项目,但我能够创建一个较小的复制品.
使用sqlite进行测试