【发布时间】:2015-03-19 09:30:51
【问题描述】:
假设我有两个表,oldstatistics 和 statistics,新表对时间列有不同的约束。
例如,较新的表具有以下约束,而旧表具有违反的数据:
CONSTRAINT check_ts_2013_03 CHECK (statistictime >= '2013-03-01 01:00:00+01'::timestamp with time zone AND statistictime
并且违反的数据假设他们有 statistictime '2013-04-01 00:15:00+01'
我找到了一些使用INSERT OR IGNORE 的 SQLite 解决方案(如果发生约束冲突,行将被跳过,它会继续),但不适用于 POSTGRESQL。
你有什么建议吗?
【问题讨论】:
-
@SimoKivistö 您的链接问题中指定的答案是使用 psql,但这不是我的情况,因为我正在使用 psycopg2 模块和 python。
-
@valentin_nasta 你可以使用
DO在普通SQL中运行PL/pgSQL:postgresql.org/docs/9.4/static/sql-do.html或者创建一个存储函数。 -
抱歉,我将
psql与pgsql混淆了...,但您仍然可以使用 pgSQL 解决您的问题,因为它支持逐行处理(过程语句)
标签: sql postgresql subquery insert-into