Postgresql pgstartup.log проблемы с файлом - PullRequest
0 голосов
/ 29 марта 2012

Все,

Я работаю в среде разработки и имею десятки одновременных вставок, идущих в таблицу с первичным ключом, которая запрещает вставку дубликатов записей.Это именно то, что он намеревался сделать.Моя проблема в том, что я получаю ОГРОМНЫЕ файлы журнала, потому что каждая дублирующаяся запись сообщается в файл журнала как ОШИБКА или ПРЕДУПРЕЖДЕНИЕ.В любом случае, это было зарегистрировано.Я выключил это в файле конфигурации, и теперь все регистрируется в pgstartup.log.Этот файл иногда превышает 20 концертов.Как можно предотвратить слишком большой рост этого файла?

Спасибо, Адам

Ответы [ 2 ]

2 голосов
/ 29 марта 2012

В Postgres нет ни MERGE, ни INSERT IGNORE, ни UPSERT: (

Однако вместо прямой вставки вы можете использовать суррогатную MERGE или INSERT IGNORE (используя CTE) для предотвращения дублирования вставок:

WITH upsert AS
(UPDATE "your table" yt SET .... WHERE yt.key=<KEY VALUE>
  RETURNING yt.*
)
INSERT INTO "your table"
SELECT ... FROM "your table" WHERE key NOT IN (SELECT key FROM upsert);

г

1 голос
/ 29 марта 2012

Вы, вероятно, можете использовать инструмент ротации журналов, например: logrotate(8) для регулярного усечения или сжатия файла журнала, когда он достигает определенного размера или возраста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...