Python sqlalchemy.orm.exc.FlushError:实例的标识键为空。(甲骨文数据库)

Python sqlalchemy.orm.exc.FlushError:实例的标识键为空。(甲骨文数据库),python,oracle,sqlalchemy,flask-sqlalchemy,cx-oracle,Python,Oracle,Sqlalchemy,Flask Sqlalchemy,Cx Oracle,我在flask应用程序中将数据插入表时遇到问题。我在提交数据库时遇到以下错误: sqlalchemy.orm.exc.FlushError:实例的标识键为空。如果这是一个自动生成的值,请检查数据库表是否允许生成新的主键值,以及映射的列对象是否配置为期望这些生成的值。还要确保此flush()未在不适当的时间发生,例如在load()事件中。 我了解Oracle使用序列而不是自动增量,并在my db.Model中指定了主键: class TestModel(db.Model): __table

我在flask应用程序中将数据插入表时遇到问题。我在提交数据库时遇到以下错误:

sqlalchemy.orm.exc.FlushError:实例的标识键为空。如果这是一个自动生成的值,请检查数据库表是否允许生成新的主键值,以及映射的列对象是否配置为期望这些生成的值。还要确保此flush()未在不适当的时间发生,例如在load()事件中。


我了解Oracle使用序列而不是自动增量,并在my db.Model中指定了主键:

class TestModel(db.Model):
    __tablename__ = 'TESTTABLE'
    id_seq = Sequence('TEST_SEQ')
    TESTID = db.Column(db.Integer, id_seq, primary_key=True)

我在Stackoverflow上看到了这个确切的错误,该错误通过降低cx_Oracle的评级得到了修复,但我没有运气做到这一点。序列已在数据库中创建。我正在运行python3.7,最新版本的cx_Oracle和Oracle 18.1 DB。

“我知道Oracle使用序列而不是自动增量”>>因为您在18.1上,它提供了标识列(您称之为“自动增量”),所以-如果您认为它有帮助,请切换到序列而不是序列。“我知道Oracle使用序列而不是自动增量”>>在18.1版本中,它提供了标识列(您称之为“自动增量”),因此-如果您认为这有帮助,请切换到序列而不是序列。