`
frank59
  • 浏览: 9848 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

SQL:不存在则insert存在则update

 
阅读更多

最近在工作中遇到了一个需求

在执行数据库操作时需要先判断指定的数据是否存在,如果不存在则插入,存在则更新

最开始使用的是三条SQL语句:

SELECT bl_count,bl_src,bl_date,bl_topic FROM temp_table WHERE bl_topic=? AND bl_src=? AND bl_date=?;

UPDATE temp_table SET bl_count=? WHERE bl_topic=? AND bl_src=? AND bl_date=?;

INSERT INTO temp_table (bl_src,bl_date,bl_count,bl_topic) values(?,?,?,?)
逻辑是:

if(SELECT!= null){
	UPDATE
}else{
	INSERT
}

后来leader提示还有新的方法,一条SQL语句就能搞定:

INSERT INTO temp_table(bl_src,bl_date,bl_count,bl_topic) VALUES(?,?,?,?) ON DUPLICATE KEY UPDATE bl_count=bl_count+?;

但是有个前提就是:什么时候会执行update语句?在SQL语句中并没有条件。

后来在网上看到的,执行update语句的条件是insert语句的执行会造成唯一键的重复。

所以,在创建表的时候还要加上唯一键的约束

ALTER TABLE temp_table ADD CONSTRAINT c_topic_src_date UNIQUE(bl_topic,bl_src,bl_date);

这样就能达到目的。



分享到:
评论

相关推荐

    sql语句生成工具,insert,update

    SQL语句是数据库操作的核心,主要用于插入(INSERT)、更新(UPDATE)和查询数据。在数据库管理系统中,这些操作是日常开发和维护中的基本任务。本文将深入探讨如何使用SQL语句生成工具,特别是针对INSERT和UPDATE...

    mysql如何实现 如果存在就update更新,不存在再insert插入.zip

    在MySQL数据库中,如果你需要执行一个操作,即当数据存在时进行更新,如果不存在则进行插入,你可以使用`INSERT INTO...ON DUPLICATE KEY UPDATE`语句。这个功能强大的语句结合了`INSERT`和`UPDATE`操作,允许你在...

    insert,update导出sql语句

    总结来说,INSERT和UPDATE SQL语句是数据库操作的核心,用于添加和修改数据。导出这些语句的目的是为了数据备份、恢复或在不同环境间迁移数据。使用合适的工具或脚本,可以轻松地批量生成这些语句,提高工作效率。而...

    MFC 源码 VC++ sqlserver数据库访问 insert update

    例如,`Open`方法用于连接数据库,`ExecuteSQL`方法用于执行非选择性SQL(如INSERT或UPDATE),而`Open`或`Execute`方法则用于执行选择性SQL(如SELECT)。 在源码中,我们可能会看到如下操作步骤: 1. 初始化...

    insert/update同时执行(mysql,oracle,sqlserver)

    判断是否存在,存在就update,不存在insert,不是用存储过程解决的。

    常用的sql语句(select insert update)

    下面将详细讲解标题和描述中提到的基础SQL语句:SELECT、INSERT和UPDATE。 1. **SELECT语句**:这是SQL中最常用的语句,用于从数据库中检索数据。其基本语法是: ```sql SELECT column1, column2, ... FROM ...

    DML练习:UPDATE,DELETE,INSERT操作 数据库实验报告

    这篇实验报告主要涉及了数据库管理系统的数据操作,包括DML(Data Manipulation Language)的三大基本操作:UPDATE、DELETE和INSERT。这些操作是数据库管理中不可或缺的部分,用于更新、删除和添加数据记录。 1. ...

    SQL数据脚本生成器,Update和Insert

    SQL Update语句用于修改已存在于表中的记录。其基本语法结构是: ```sql UPDATE 表名 SET 列名 = 新值 WHERE 条件; ``` 这个工具能够自动生成Update语句,根据用户提供的查询条件,自动填充"SET"部分的新值和"WHERE...

    C# 自定义方法 buildsql(insert ,update)

    C# 自定义方法 buildsql(insert ,update),数据类型转换,按钮绑定,控件设置,直接调用 使用

    个人用C#实现的SqlServer数据脚本生成器(可达到数据有则update,无则insert)

    用户可能通过这个可执行文件启动程序,输入或导入数据,然后程序会生成相应的INSERT和UPDATE SQL语句。 综合以上信息,这个工具可能的工作流程是这样的:用户通过`BuildInsertSql.exe`启动程序,配置`...

    shell连接oracle数据库执行SQL工具脚本-支持select+inset+update

    shell连接oracle数据库工具脚本:支持select/insert/update/delete 部署位置:/root/sysmonitor db:数据库文件夹 dbconfig.properties:数据库配置文件, dbConnectTest.sh:连接测试文件 dbExecurteSQL.sh:...

    项目实施工具-SQL语句生成(insert,Update)

    INSERT语句用于在数据库中新增记录,而UPDATE语句则用于修改已存在的记录。这两类语句是数据库操作中最基本也是最常用的命令。 4. **剪贴板操作**:生成的SQL语句可以直接复制到剪贴板,方便用户将其粘贴到SQL...

    SQL Server中的XML数据进行insert、update、delete

    SQL Server中新增加了XML.Modify()方法,分别为xml.modify(insert),xml.modify(delete),xml.modify(replace)对应XML的插入,删除和修改操作。 本文以下面XML为例,对三种DML进行说明: declare @XMLVar xml = ‘ ...

    SQL server触发器中 update insert delete.png

    SQL server触发器中 update insert delete

    自动生成Insert,Update,Delete等SQL,批量操作字符,实用小工具

    3. 根据查询出来的表格,选择行之后可任意生成Insert,Update,Delete等SQL,生成SQL可直接运行; 4. 生成Insert,Update,Delete等SQL的时候,会自动过滤掉种子列和计算列; 5. 批量操作字符串,批量增加和批量减少...

    LINQ体验——LINQ to SQL语句之Insert/Update/Delete操作

    "LINQ体验——LINQ to SQL语句之Insert/Update/Delete操作" 在本篇文章中,我们将继续讨论LINQ to SQL语句,重点介绍Insert/Update/Delete操作,这些操作在我们的程序中是最常用的。下面,我们将通过多个示例来详细...

    SQLServer添加UPDATE回滚日志.doc

    在数据没有备份的情况下,它可以对数据进行恢复,无论是update/insert/delete都可以进行回滚操作,有demo做介绍,

    SQL: A BEGINNER'S GUIDE 3/E

    You will learn how to retrieve, insert, update, and delete database data, and perform management and administrative functions. SQL: A Beginner's Guide, Third Edition covers new features, including ...

    Insert Update Delete_insertupdatedelete_sql_

    在SQL(Structured Query Language)中,插入(Insert)、更新(Update)和删除(Delete)是数据库操作的基础,它们用于管理数据库中的数据。以下是对这些基本操作的详细解释: 1. **插入(Insert)** 插入语句...

    oracle 多表做update insert语句.docx

    今天,我们将讨论 Oracle 中的 Update 语句,包括 Update 语句的基本语法、Update 语句中使用 Select 语句、Update 语句中使用 Join 语句、Insert 语句的使用等。 一、Update 语句的基本语法 Update 语句的基本...

Global site tag (gtag.js) - Google Analytics