【发布时间】:2014-09-09 15:15:33
【问题描述】:
我有一个包含以下列的表格:
id = sa.Column(sa.Integer, sa.Sequence('id_seq'), primary_key=True, nullable=False)
通常,我插入数据没有问题,但是每次插入具有特定id的行时,都会导致Oracle出现问题,因为没有相应地修改序列。
例如,假设表是新表并且序列从 1 开始,如果我插入指定 id=2 的行,则序列不会改变,这将导致下一次插入失败。
我知道 Oracle 不支持自动增量,但是在 sqlalchemy 下处理这个问题的正确方法是什么?我需要在这样的插入语句之后手动更改顺序吗?我可以绑定到一个事件或使用任何其他魔法使其像其他方言一样工作吗? (选择 max(id)+1)
【问题讨论】:
-
Oracle没有像MySQL那样的“自动增量”,但它有
sequence。 -
它在 12c @jcho360...
标签: python oracle sqlalchemy sequence