作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
全部,
我在开发环境中运行,并且有许多并发插入到具有主键的表中,禁止插入重复记录。这正是它打算做的。我的问题是我得到了巨大的日志文件,因为每条重复记录都作为错误或警告报告给日志文件。无论哪种方式,它都被记录下来了。我在配置文件中将其关闭,现在所有内容都记录到 pgstartup.log 中。这个文件有时会超过 20 个演出。我怎样才能防止这个文件变得太大?
谢谢,亚当
最佳答案
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);
r
关于Postgresql pgstartup.log 文件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9916289/
全部, 我在开发环境中运行,并且有许多并发插入到具有主键的表中,禁止插入重复记录。这正是它打算做的。我的问题是我得到了巨大的日志文件,因为每条重复记录都作为错误或警告报告给日志文件。无论哪种方式,它都
我是一名优秀的程序员,十分优秀!