最近在工作中遇到了一个需求
在执行数据库操作时需要先判断指定的数据是否存在,如果不存在则插入,存在则更新
最开始使用的是三条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...
在MySQL数据库中,如果你需要执行一个操作,即当数据存在时进行更新,如果不存在则进行插入,你可以使用`INSERT INTO...ON DUPLICATE KEY UPDATE`语句。这个功能强大的语句结合了`INSERT`和`UPDATE`操作,允许你在...
总结来说,INSERT和UPDATE SQL语句是数据库操作的核心,用于添加和修改数据。导出这些语句的目的是为了数据备份、恢复或在不同环境间迁移数据。使用合适的工具或脚本,可以轻松地批量生成这些语句,提高工作效率。而...
例如,`Open`方法用于连接数据库,`ExecuteSQL`方法用于执行非选择性SQL(如INSERT或UPDATE),而`Open`或`Execute`方法则用于执行选择性SQL(如SELECT)。 在源码中,我们可能会看到如下操作步骤: 1. 初始化...
判断是否存在,存在就update,不存在insert,不是用存储过程解决的。
下面将详细讲解标题和描述中提到的基础SQL语句:SELECT、INSERT和UPDATE。 1. **SELECT语句**:这是SQL中最常用的语句,用于从数据库中检索数据。其基本语法是: ```sql SELECT column1, column2, ... FROM ...
这篇实验报告主要涉及了数据库管理系统的数据操作,包括DML(Data Manipulation Language)的三大基本操作:UPDATE、DELETE和INSERT。这些操作是数据库管理中不可或缺的部分,用于更新、删除和添加数据记录。 1. ...
SQL Update语句用于修改已存在于表中的记录。其基本语法结构是: ```sql UPDATE 表名 SET 列名 = 新值 WHERE 条件; ``` 这个工具能够自动生成Update语句,根据用户提供的查询条件,自动填充"SET"部分的新值和"WHERE...
C# 自定义方法 buildsql(insert ,update),数据类型转换,按钮绑定,控件设置,直接调用 使用
用户可能通过这个可执行文件启动程序,输入或导入数据,然后程序会生成相应的INSERT和UPDATE SQL语句。 综合以上信息,这个工具可能的工作流程是这样的:用户通过`BuildInsertSql.exe`启动程序,配置`...
shell连接oracle数据库工具脚本:支持select/insert/update/delete 部署位置:/root/sysmonitor db:数据库文件夹 dbconfig.properties:数据库配置文件, dbConnectTest.sh:连接测试文件 dbExecurteSQL.sh:...
INSERT语句用于在数据库中新增记录,而UPDATE语句则用于修改已存在的记录。这两类语句是数据库操作中最基本也是最常用的命令。 4. **剪贴板操作**:生成的SQL语句可以直接复制到剪贴板,方便用户将其粘贴到SQL...
SQL Server中新增加了XML.Modify()方法,分别为xml.modify(insert),xml.modify(delete),xml.modify(replace)对应XML的插入,删除和修改操作。 本文以下面XML为例,对三种DML进行说明: declare @XMLVar xml = ‘ ...
SQL server触发器中 update insert delete
3. 根据查询出来的表格,选择行之后可任意生成Insert,Update,Delete等SQL,生成SQL可直接运行; 4. 生成Insert,Update,Delete等SQL的时候,会自动过滤掉种子列和计算列; 5. 批量操作字符串,批量增加和批量减少...
"LINQ体验——LINQ to SQL语句之Insert/Update/Delete操作" 在本篇文章中,我们将继续讨论LINQ to SQL语句,重点介绍Insert/Update/Delete操作,这些操作在我们的程序中是最常用的。下面,我们将通过多个示例来详细...
在数据没有备份的情况下,它可以对数据进行恢复,无论是update/insert/delete都可以进行回滚操作,有demo做介绍,
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 ...
在SQL(Structured Query Language)中,插入(Insert)、更新(Update)和删除(Delete)是数据库操作的基础,它们用于管理数据库中的数据。以下是对这些基本操作的详细解释: 1. **插入(Insert)** 插入语句...
今天,我们将讨论 Oracle 中的 Update 语句,包括 Update 语句的基本语法、Update 语句中使用 Select 语句、Update 语句中使用 Join 语句、Insert 语句的使用等。 一、Update 语句的基本语法 Update 语句的基本...