首页 > 解决方案 > 实例在使用 sqlalchemy 中的 session.add() 插入带触发器的分区表期间出现 NULL 标识键错误

问题描述

我正在为我的烧瓶项目使用 postgresql 和 sqlalchemy。

我最近使用 postgresql 触发器基于 created_on 对我的一个大表进行了分区。

但是现在如果尝试在 sqlalchemy 中使用 db.session.add(obj) 将记录插入主表,我会收到错误消息

实例有一个 NULL 身份密钥。如果这是一个自动生成的值,请检查数据库表是否允许生成新的主键值,以及映射的 Column 对象是否配置为期望这些生成的值。还要确保此 flush() 不会在不适当的时间发生,例如在 load() 事件中。

在这里,我使用一个序列来增加我的主键。请帮我解决一下这个。

标签: postgresqlflasksqlalchemytriggersflask-sqlalchemy

解决方案


autoincrement=True在我的代码中定义列示例时使用sno是一个自动增量字段:

class Contact(db.Model):
     sno = db.Column(db.Integer, primary_key=True,autoincrement=True)

推荐阅读