假设我有两个表,oldstatistics和统计,新表在时间列不同的约束。用INSERT INTO迁移数据,以便与约束PostgreSQL的侵犯
例如,新表具有以下contraint和旧表中有违反数据:
CONSTRAINT check_ts_2013_03 CHECK (statistictime >= '2013-03-01 01:00:00+01'::timestamp with time zone AND statistictime < '2013-04-01 02:00:00+02'::timestamp with time zone)
违反假设他们有statistictime“2013年4月1日00及数据:15:00+ 01'
我发现了一些解决方案,SQLite与INSERT OR IGNORE(如果违反约束发生的行将被跳过,它会继续),但不是为POSTGRESQL。
你有什么建议吗?
以及可能的[有没有办法设置一个选项,即使存在错误也会导致PostgreSQL脚本继续?](http:// stackoverflow。 com/q/14908451/1288184):) – 2015-03-19 09:58:10
@SimoKivistö在你的链接问题中指定的答案是使用psql,但这不是我的情况,因为我在python中使用psycopg2模块。 – 2015-03-19 10:01:56
@valentin_nasta您可以使用'DO'在普通SQL中运行PL/pgSQL:http://www.postgresql.org/docs/9.4/static/sql-do.html或创建一个存储函数。 – 2015-03-19 10:03:31