我在 mysql 5.5 中使用 sqlalchemy 0.8
我有一个简单的表,其 ORM 定义如下所示
class TrackingTable(db.Model):
__tablename__ = 'tracking_table'
trackid = db.Column(db.BigInteger,primary_key=True)
custid = db.Column(db.String(20), db.ForeignKey('customer.id'))
tracktime = db.Column(db.DateTime ,nullable=False)
formdata = db.Column(db.String(100),nullable=False)
Run Code Online (Sandbox Code Playgroud)
我假设(根据文档) trackid 是 BIGINT 类型的主键,因此它会自动递增。
但是当我尝试在 db 中添加一条记录时
updateRecord = TrackingTable(custid='002',tracktime='2013-02-02',formdata='logged in')
db_session.add(updateRecord)
db_session.flush()
db_session.commit()
Run Code Online (Sandbox Code Playgroud)
它发出警告警告:字段“trackid”没有默认值
并且它总是为 trackid 取值 0,因此第二次添加总是失败并出现错误 IntegrityError: (IntegrityError) (1062, "Duplicate entry '0' for key 'PRIMARY'") 'INSERT INTO tracking_table (custid, tracktime , 表格数据)
请帮我解决这个问题。理想情况下,我希望这是一个由数据库处理的递增值,但我无法弄清楚如何实现这一点。
提前致谢
| 归档时间: |
|
| 查看次数: |
7339 次 |
| 最近记录: |