我正在使用 sqlalchemy 0.8 和 mysql 5.5
我有一个简单的表,其 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)
我假设(根据文档)trackid 是 BIGINT 类型的主键,因此它将自动递增。
但是当我尝试在数据库中添加记录时
updateRecord = TrackingTable(custid='002',tracktime='2013-02-02',formdata='logged in')
db_session.add(updateRecord)
db_session.flush()
db_session.commit()
它发出警告警告:字段“trackid”没有默认值
并且它总是为 trackid 取值 0,因此第二次添加总是失败并出现错误 IntegrityError: (IntegrityError) (1062, "Duplicate entry '0' for key 'PRIMARY'") 'INSERT INTO tracking_table (custid, tracktime , 表格数据)
请帮我解决这个问题。理想情况下,我希望这是一个由数据库处理的增量值,但我不知道如何实现这一点。
提前致谢