PostgreSQL在SQLAlchemy中的冲突

奉献精神:

我读过不少资源(AO。12),但我无法得到PostgreSQL关于冲突忽略行为SQLAlchemy的工作。

我已经以这个公认的答案为基础,但是它给出了

SAWarning: Can't validate argument 'append_string'; can't locate any SQLAlchemy dialect named 'append'

我尝试将Postgresql方言添加到@compile子句中,重命名我的对象,但是它不起作用。我也尝试使用str(insert())+ " ON CONFILCT IGNORE"没有结果。(顺便说一句)

我怎样才能将On CONFLICT IGNORE其添加到我的插入物中?我喜欢提出的解决方案,因为我发现自己不希望IGNORE每个行为都如此INSERT

ps。使用python 2.7(不要介意升级到3.4 / 3.5),最新的sqlalchemy(1.x)

亚当·西连科(Adam Silenko):

您不需要这个,使用exist条件防止插入重复项。

例如:

INSERT INTO table (unique_name) 
SELECT 'some_string'
WHERE NOT EXISTS(SELECT 1 FROM table WHERE unique_name = 'some_string')

你也可以

INSERT INTO table (unique_name)
VALUES('some_string')
ON CONFLICT (unique_name) DO NOTHING

但是,如果您需要在单个查询中插入或更新,那么以下示例适用于您:

INSERT INTO distributors (did, dname)
VALUES (5, 'Gizmo Transglobal'), (6, 'Associated Computing, Inc')
ON CONFLICT (did) DO UPDATE SET dname = EXCLUDED.dname;

这是PostgreSQL文档中的一个例子。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用SQLAlchemy连接Postgresql

使用SQLAlchemy连接Postgresql

PostgreSQL在冲突更新中插入(向上更新)使用所有排除的值

PostgreSQL中的SQLAlchemy中的ENUM类型

使用PostgreSQL在SQLAlchemy测试中创建数据库

使用Postgresql从Flask-SQLAlchemy中的JSON字段查询值

在插入和更新中具有相同值的PostgreSQL Upsert(冲突时)

插入中的SQLAlchemy“排除” PostgreSQL名称空间... ON CONFLICT

如何区分sqlalchemy INSERT…ON CONFLICT中的冲突(Upsert)

在与PostgreSql连接的烧瓶SqlAlchemy中双重插入记录?

SQLAlchemy在PostgresQL中创建视图

PostgreSQL在冲突中更新仅在某些情况下

发生冲突时,如果PostgreSQL中的json值不同,则更新?

Node.js,PostgreSQL中的事务冲突,乐观的并发控制和事务重试

PostgreSQL:UPSERT / INSERT INTO定义冲突

PostgreSQL分区和sqlalchemy

在PostgreSQL,Sqlalchemy中存储不同的十进制精度?

如何在PostgreSQL中的“在冲突更新时插入选择”语句中引用选定的行

使用SQLAlchemy在PostgreSQL中创建函数和触发器

无法使用Psycopg2更新PostgreSQL中存在冲突的现有行

sqlalchemy BC日期与postgresql

在SQLAlchemy中设置PostgreSQL配置参数

Maven中的冲突库

Androidstudio 中的冲突依赖

SQLAlchemy 中的 PostgreSQL ts_stat

在 SQLAlchemy 中,如何在冲突时重试插入唯一 ID?

Postgresql 关于冲突更新?

PostgreSQL 插入冲突和 TKinter

SQLAlchemy 中的 PostgreSQL NOT 运算符