数据库日志:
<PGSCYANAES-scyanaes-2017-10-10 09:35:22 CEST>ERROR: duplicate key value
violates unique constraint "anx___7lv6kvss__pkey"
<PGSCYANAES-scyanaes-2017-10-10 09:35:22 CEST>DETAIL: Key
(record_id)=(64d8b03f-9e60-3d2e-837e-3df5103620e7) already exists.
<PGSCYANAES-scyanaes-2017-10-10 09:35:22 CEST>STATEMENT: INSERT INTO
ANX___7Lv6kvss_ (partition_key, timestamp, data, record_id) VALUES ($1, $2, $3, $4)
<PGSCYANAES-scyanaes-2017-10-10 09:35:22 CEST>ERROR: duplicate key value
violates unique constraint "anx___7lv6kvss__pkey"
我之前在wso2carbon.log中看过这些条目,但在重新创建数据库并重新安装分析服务器后,wso2carbon.log看起来很干净。但是 - 数据库团队一直声称这些错误仍然存在(很多)
编辑:
我们发现有一个带有SQL语句rdbms-config.xml
的配置文件
并且有几个语句导致db日志中的错误:
<recordInsertQuery>INSERT INTO {{TABLE_NAME}} (partition_key, timestamp, data, record_id) VALUES (?, ?, ?, ?) </recordInsertQuery>
此语句似乎导致大多数错误日志。
我已将声明更改为:
INSERT INTO {{TABLE_NAME}} (partition_key, timestamp, data, record_id)
VALUES (?, ?, ?, ?)
ON CONFLICT (record_id)
DO UPDATE SET partition_key=EXCLUDED.partition_key, timestamp=EXCLUDED.timestamp, data=EXCLUDED.data
到目前为止看起来一切正常,但我可能不知道此更新的所有后果和副作用。使用新的upsert语句会出现任何问题吗?
提前感谢您提供任何提示/帮助