python - SQLAlchemy 中的整数字段不自动递增

标签 python postgresql sqlalchemy flask-sqlalchemy

我有一个带有 Integer 字段的 Flask-SQLAlchemy 模型,我想自动递增。它不是主键;这是代理ID。模型看起来像:

class StreetSegment(db.Model):
    id = db.Column(db.Integer, autoincrement=True)
    seg_id = db.Column(db.Integer, primary_key=True)

当我在我的 Postgres 数据库中创建表时,id 字段被创建为一个普通整数。如果我在没有为 id 指定值的情况下插入行,它不会被填充。有什么方法可以强制 SQLAlchemy 使用 SERIAL,即使它不是主键?

最佳答案

使用Sequence而不是 autoincrement:

id = db.Column(db.Integer, db.Sequence("seq_street_segment_id"))

关于python - SQLAlchemy 中的整数字段不自动递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35897254/

相关文章:

sql - 为什么我不能在此查询中组合 LEFT OUTER JOIN 和 WHERE 子句?

sql - 为 1 对 N 映射执行连接

python - SQLAlchemy:如何根据多个键自动递增?

python - sqlalchemy 中的内部连接与连接加载

python - 在python中读取文件

python - Bottle gevent 和线程 : gevent is only usable from a single thread

python - 无法使用 mock_open() 在模拟函数中测试全局值

c++ - 使用 Py++ 生成的代码作为 Python 扩展

sql - 如何使用 'in' 运算符返回 0 而不是 null

python - 为 sqlalchemy 应用程序编写 pytest