В идеале, новая функция «WITH ROWS» в 9.1 могла бы поддерживать пересечение границ базы данных, но, похоже, она работает только в одной БД.
WITH moved_rows AS (
DELETE FROM events
WHERE
"date" >= '2010-01-01' AND
"date" < '2011-01-01'
RETURNING *
)
INSERT INTO events_archive
SELECT * FROM moved_rows;
Хотелось бы, чтобы я мог указывать события какчто-то вроде «УДАЛИТЬ ИЗ LiveDB.events», а затем я могу сделать «INSERT INTO ArchiveDB.events».Кажется, что dblink не работает, чтобы получить список строк для перемещения, и даже если бы он это сделал, я не уверен, является ли этот оператор безопасным для транзакций между БД ...