如何在flask_sqlalchemy中使用PostgreSQL的“INSERT … ON CONFLICT”(UPSE
发布时间:2020-05-23 13:34:36 所属栏目:Python 来源:互联网
导读:INSERT语句中的PostgreSQL ON CONFLICT子句提供“upsert”功能(即更新现有记录,或者如果不存在此类记录则插入新记录). SQLAlchemy通过PostgreSQL方言的Insert对象上的on_conflict_do_nothing和on_conflict_do_update方法支持此功能(如here所述):from sqla
|
INSERT语句中的PostgreSQL ON CONFLICT子句提供“upsert”功能(即更新现有记录,或者如果不存在此类记录则插入新记录). SQLAlchemy通过PostgreSQL方言的Insert对象上的on_conflict_do_nothing和on_conflict_do_update方法支持此功能(如here所述):
我正在使用flask_sqlalchemy,它管理SQLAlchemy的引擎,会话和连接.要向数据库添加元素,我创建模型的实例,将其添加到数据库会话,然后调用commit,如下所示:
所以Insert对象被flask_sqlalchemy完全包装和遮盖. 如何访问PostgreSQL特定的方言方法来执行upsert?我是否需要绕过flask_sqlalchemy并创建自己的会话?如果我这样做,我怎么能确保没有冲突? 最佳答案 事实证明,您可以在db.session上执行较低级别的语句.所以解决方案看起来像这样:
我的模型类中的as_dict()和props_dict()方法允许我使用构造函数从传入的HTTP请求中过滤掉不需要的属性. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
