Предположим, у меня есть две таблицы, старая статистика и статистика, у новой таблицы есть другое ограничение на столбце времени.Перенос данных с 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-04-01 00: 15: 00+ 01 '
Я нашел решение для SQLite с INSERT OR IGNORE (если произойдет нарушение ограничения, строки будут пропущены, и они будут продолжены), но не для POSTGRESQL.
Есть ли у вас какие-либо предложения?
и возможный дубликат [Есть ли способ установить параметр, который приведет к продолжению сценария PostgreSQL, даже если есть ошибки?] (http: // stackoverflow. com/q/14908451/1288184) :) –
@ SimoKivistö Ответ, указанный в вашем связанном вопросе, использует psql, но это не мой случай, так как я использую модуль psycopg2 с python. –
@valentin_nasta Вы можете использовать 'DO' для запуска PL/pgSQL в обычном SQL: http://www.postgresql.org/docs/9.4/static/sql-do.html или создать сохраненную функцию. –