如何使用mysql添加更新_Mysql 存在既更新,不存在就添加(sql语句)
讨人喜欢的 MySQL replace into 用法(insert into 的增强版)
在向表中插入数据的时候,经常遇到这样的情况:1. 首先判断数据是否存在; 2. 如果不存在,则插入;3.如果存在,则更新。
在 SQL Server 中可以这样处理:
if not exists (select 1 from t where id = 1)insert into t(id, update_time) values(1, getdate())else
update t set update_time = getdate() where id = 1
那么 MySQL 中如何实现这样的逻辑呢?别着急!mysql 中有更简单的方法: replace into
replace into t(id, update_time) values(1, now());
或
replace into t(id, update_time) select 1, now();
replace into 跟 insert 功能类似,不同点在于:replace into 首先尝试插入数据到表中, 1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。 2. 否则,直接插入新数据。
要注意的是:插入数据的表必须有主键或者是唯一索引!否则的话,replace into 会直接插入数据,这将导致表中出现重复的数据。
MySQL replace into 有三种形式:
1. replace into tbl_name(col_name, ...) values(...)2. replace into tbl_name(col_name, ...) select...3. replace into tbl_name set col_name=value, ...
前两种形式用的多些。其中 “into” 关键字可以省略,不过最好加上 “into”,这样意思更加直观。另外,对于那些没有给予值的列,MySQL 将自动为这些列赋上默认值。
如何使用mysql添加更新_Mysql 存在既更新,不存在就添加(sql语句)相关推荐
- mysql插入删除_mysql插入、更新与删除
数据库增删改查都是要熟练掌握的. 这部分就来看看前面3个比较简单的部分,增,删,改. 插入数据 为表的所有字段插入数据 insert into table_name (column_list) val ...
- mybatis mysql 批量更新_mysql批量update更新,mybatis中批量更新操作
在日常开发中,有时候会遇到批量更新操作,这时候最普通的写法就是循环遍历,然后一条一条地进行update操作.但是不管是在服务端进行遍历,还是在sql代码中进行遍历,都很耗费资源,而且性能比较差,容易造 ...
- 怎么做mysql查询系统_mysql数据库系统学习(一)---一条SQL查询语句是如何执行的?...
一.第一节:一条sql查询语句是怎样执行的 5.5.5版本以后,默认使用存储引擎为InnoDB 不使用查询缓存,MySQL8.0没有查询缓存这个功能 总体来说:MySQL分为service层和存储引擎 ...
- mysql阻塞 事务_MySQL Innodb如何找出阻塞事务源头SQL
在MySQL数据库中出现了阻塞问题,如何快速查找定位问题根源?在实验开始前,咱们先梳理一下有什么工具或命令查看MySQL的阻塞,另外,咱们也要一一对比其优劣,由于有些命令可能在实际环境下可能并不适用. ...
- mysql创建用户表的sql语句_Mysql创建、删除用户和表的SQL语句
Mysql创建.删除用户和表的SQL语句 (2015-01-15 17:08:17) 标签: it 联动北方 数据库 分类: IT MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意 ...
- mysql删除完全重复数据库_MySQL中删除完全重复数据的准确SQL语句
案例: id姓名课程名称分数1张三数学692李四数学893张三数学69删除除了自动编号不同,其他都相同的学生冗余信息 ----------------------------------------- ...
- mysql查询低效语句_MySQL数据库中查找执行从命慢的SQL语句
MySQL数据库中查找执行从命慢的SQL语句 (2011-09-15 08:21:35) 标签: 杂谈 去历:赛迪网 做者:Alizze 启动Mysql时减参数--log-slow-queries去挤 ...
- JDBC连接mysql、创建表、操作数据、PreparedStatement防注入、sql语句返回值类型知识汇总
JDBC连接过程: import java.sql.*;/*** Description:* Created by CWG on 2020/10/29 21:05*/ public class Con ...
- mysql怎么刷题_面试刷题mysql1:一条sql语句是如何经过mysql的体系结构的?
{port} -u${user} -p ,输入密码. 使用连接器连接服务端: 连接成功之后,权限修改不会影响当前连接,连接的有效期默认是8个小时: 连接之后,执行过程中使用内存会持续增加,应该定时重置 ...
- js语句连接mysql数据库_js中require()的用法----JS如何连接数据库执行sql语句或者建立数据库连接池...
var vue = require('vue'); 引入vue的意思,commonjs的写法.node都是用require来载入模块的,可以看看webpack+vue. require()可以调用模块 ...
最新文章
- android引用的java包_Android开发中jar包的创建及引用
- SAP固定资产、管理会计模块习题-针对END-USER
- web前端入门学习 css(8)(新增语义化标签、video/audio、新增input类型、新增表单属性、属性选择器、结构伪类选择器、伪元素选择器、css3盒子模型、模糊、calc函数、过渡
- 详解如何修改Laravel Auth使用salt和password来认证用户
- strcpy完整版 与 strcpy为什么有返回值
- ios 控件切圆_iOS中 切圆角,任意几个角(带边框,不带边框)__OC和Swift版本 韩俊强的博客...
- 经典OA办公协同管理-原型UI设计-制作
- ms Sql server 中的getDate()函数使用方法总结
- 软件测试的错误优先级,软件测试典型错误
- 101—200之间的素数-Java编写
- php网站系统说明,飞飞php影视cms系统v3.0模版最全标签说明
- 柯里化 curry
- Mac双系统Win10系统安装MySQL的坑
- LeetCode知识点总结 - 1413
- stata软件不出图_stata 如何导出绘制的图?
- 【Ubuntu】Ubuntu更换主题
- AUTOCAD——图纸歪了如何对齐
- App测试中有哪些常见的性能测试指标?出具App测试报告的软件测试机构推荐
- 案例分享-21款奔驰S450L升级原厂夜色饰条套件
- 无域控AlwaysOn实战教学 (一)
热门文章
- r语言散点图_R语言 | 散点图入门:以声学元音图为例
- if 组件是否存在_UE4 UMG简介+Slate组件问题排查
- java中输出值保留四位小数_Java工程师(3).变量和数据类型
- 不愿意和别人打交道_参加完孩子学校的运动会,宝妈吐槽贫富圈子差距大,不适合打交道...
- java java.lang_Java之java.lang.IllegalMonitorStateException
- 【转】文本文件和二进制文件区别及java中字节流和字符流归纳
- 33种编程语言为您送上祝福,新年快乐!
- java实体类属性非空判断工具类
- CCNA-第十六篇-综合实验
- 【CodeForces - 628C】Bear and String Distance(贪心,构造)