postgresql数据库 如果存在则更新(update),如果不存在则插入(insert)

项目使用的PGsql数据库,现在遇到的问题是保存数据,如果存在就更新,如果不存在就插入,那么如何写sql呢?
有一张表有自己的主键id,同时有一个组合唯一索引,字段分别是:item_type,item_type_id,item_group,item_group_key
废话不多说,实现的sql如下:

<insert id="insertResourceConfig" parameterType="com.lenovo.mcmp.rm.etl.model.param.resourceConfig.CreateResourceConfigParam">
        INSERT INTO resource_config (item_type,item_type_id,item_group,item_group_key
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于 MyBatis 和 PostgreSQL,你可以使用以下方法来实现数据更新或新增的操作: 1. 使用 INSERT INTO ... ON CONFLICT DO UPDATE 语句:这是 PostgreSQL 提供的一种语法,用于在插入数据时检查冲突,并在冲突时执行更新操作。 ```java <insert id="insertOrUpdate" parameterType="YourEntity"> INSERT INTO your_table (id, column1, column2) VALUES (#{id}, #{column1}, #{column2}) ON CONFLICT (id) DO UPDATE SET column1 = #{column1}, column2 = #{column2} </insert> ``` 在上述示例中,我们首先尝试插入数据,如果发生冲突(即 id 已存在),则执行更新操作。 2. 使用动态 SQL 和 SELECT 语句:这种方法在插入数据前首先执行 SELECT 查询,如果存在数据则执行 UPDATE 操作,否则执行 INSERT 操作。 ```java <select id="checkExistence" parameterType="YourEntity" resultType="int"> SELECT COUNT(*) FROM your_table WHERE id = #{id} </select> <update id="update" parameterType="YourEntity"> UPDATE your_table SET column1 = #{column1}, column2 = #{column2} WHERE id = #{id} </update> <insert id="insert" parameterType="YourEntity"> INSERT INTO your_table (id, column1, column2) VALUES (#{id}, #{column1}, #{column2}) </insert> ``` 在上述示例中,首先执行 SELECT 查询来检查数据是否存在,然后根据查询结果选择执行 UPDATEINSERT。 以上两种方法都可以实现在数据存在时进行更新不存在时进行新增的逻辑。根据你的具体需求和数据库表结构,选择适合的方法进行操作即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值