说明:
今天在使用log4j将日志信息写入数据库时有这么一个需求:如果数据库存在一条记录,则将新插入的值,作为更新,如果没有这样一条记录,则新增。
实现:
表结构:
通过查阅资料发现postgre有这么一个方法:insert on conflict do 实现如下
INSERT INTO "warnLog" ("datatime", "log_level", "method", "connector_name", "location", "message") VALUES ('%d{yyyy-MM-dd HH:mm}','%p','%M','%X{connector_name}','%l','%m')
ON conflict ("datatime","method", "connector_name", "location") DO
UPDATE "warnLog" SET "datatime" = '%d{yyyy-MM-dd HH:mm}' ,"log_level" = '%p', "method" = '%M'