记录一下,我们在保存一条数据的时候通常需要判断数据库是否存在,有则更新,没有就新增。一共两种方法:
1、使用on DUPLICATE key,前提是这个表必须有主键或者唯一索引。student表的sno是主键,例子如下:

CREATE table student(sno int PRIMARY key ,sname VARCHAR(10),sage int)
select * from studentINSERT into student(sname,sage)values('Tom',18) on DUPLICATE key  UPDATE  sname='Tom',sage=18
INSERT into student(sno,sname,sage)values('Tom',18) on DUPLICATE key  UPDATE  sno=1,sname='Tom',sage=18

效果是如果存在sno=1的记录就更新sno=1,sname=‘Tom’,sage=18,否则新增 。需要注意的是必须要放sno,除非你的主键有默认值或者自增,他就会给你新增一条,如果不放主键也没有设置逐渐的默认值,他就会报错:

2、使用replace into,需要注意的和上面一样,要有主键或唯一索引例子:

replace into  student(sno,sname,sage)values(1,'Tom',17)
replace into  student(sname,sage)SELECT 'Tom',17

mysql插入数据的时候,有就更新没有就新增相关推荐

  1. mysql插入数据与删除重复记录的几个例子(收藏)

    mysql插入数据与删除重复记录的几个例子 12-26shell脚本实现mysql数据的批量插入 12-26mysql循环语句插入数据的例子 12-26mysql批量插入数据(insert into ...

  2. mysql插入数据,根据相关字段判断这条数据是否存在,存在就不插入,不存在就插入

    mysql插入数据,根据相关字段判断这条数据是否存在,存在就不插入,不存在就插入 简单写一个Android MySQL数据库管理帮助类,代码质量有待提升. public class MySQLiteO ...

  3. MySQL插入数据的三种方法

    Mysql 插入数据 1.mysql中常用的三种插入数据的方法 insert into:正常的插入数据,插入数据的时候会检查主键或者唯一索引,如果出现重复就会报错. replace into:替换数据 ...

  4. MySQL 插入数据时,中文乱码问题的解决

    MySQL 插入数据时,中文乱码问题的解决 参考文章: (1)MySQL 插入数据时,中文乱码问题的解决 (2)https://www.cnblogs.com/sunzn/archive/2013/0 ...

  5. linux mysql插入中文乱码_解决Linux下Tomcat向MySQL插入数据中文乱码问题

    一.问题 在windows上面使用eclipse开发的项目在windows上面运行一切正常,部署到腾讯云时出现向MySQL数据库中插入数据是中文乱码 二.解决办法 1.尝试一 直接在linux上面使用 ...

  6. c# 向mysql插入数据_C#连接mysql数据库 及向表中插入数据的方法

    mysql 语句操作: 创建数据库:create database hotelATMDb; use hotelATMDb; C#连接mysql 1.引用 dll MySql.Data.dll 下载地址 ...

  7. mysql c接口返回自增id_详解mysql插入数据后返回自增ID的七种方法

    引言 mysql 和 oracle 插入的时候有一个很大的区别是: oracle 支持序列做 id: mysql 本身有一个列可以做自增长字段. mysql 在插入一条数据后,如何能获得到这个自增 i ...

  8. java mysql 插入 乱码_java向mysql插入数据乱码问题的解决方法

    遇到java向mysql插入数据乱码问题,如何解决? MySQL默认编码是latin1 mysql> show variables like 'character%'; +----------- ...

  9. mysql 新增返回主键自增id_详解mysql插入数据后返回自增ID的七种方法

    引言 mysql 和 oracle 插入的时候有一个很大的区别是: oracle 支持序列做 id: mysql 本身有一个列可以做自增长字段. mysql 在插入一条数据后,如何能获得到这个自增 i ...

  10. jdbc 3种获得mysql插入数据的自增字段值的方法_JDBC 3种获得mysql插入数据的自增字段值的方法...

    JDBC 3种获得mysql插入数据的自增字段值的方法. 1. Retrieving AUTO_INCREMENT Column Values using Statement.getGenerated ...

最新文章

  1. findwindowex子窗口类型有哪几种_SQL-窗口函数
  2. DS-1. 数据结构(data structure)
  3. qt 二维数组初始化_第十九章、C语言学习之数组3
  4. 深度解读畅捷通云原生架构转型实战历程
  5. Silverlight 同域WCF免跨域文件
  6. 网络切片技术缺点_一文读懂网络切片 - 技术综合版块 - 通信人家园 - Powered by C114...
  7. java -Date、DateFormat、Calendar类
  8. error LNK2019 unresolved external symbol __imp__IoDeleteDevice 错误
  9. java商城源码_盘点这些年被黑的最惨的语言,Java瑟瑟发抖
  10. 深入浅出Python——Python高级语法之函数
  11. CDN技术详解及实现原理
  12. 电路中各种地,数字地DGND、模拟地AGND、功率地PGND、电源地GND、交流地AGND、大地EGND的区别及处理
  13. python读取svg转emf_ppt矢量图标,SVG转换EMF方法
  14. 09-TensorFlow 基于WDCNN的轴承故障诊断
  15. 尚学堂马士兵servlet/JSP笔记(一、Http协议及WebApp初步)
  16. 微信下载多媒体文件 java_java微信开发之上传下载多媒体文件_php实例
  17. 网速/带宽与下载速度对照表
  18. S3 #DooTrader 经典组冠军以良好盘感,创下近 900% 收益率摘得桂冠
  19. 绑定异常 Invalid bound statement (not found): com.fwind.blog.dao.mapper.TagMapper
  20. mysql声明存储过程_MySQL 声明变量及存储过程分析

热门文章

  1. 合肥python 培训
  2. 为什么我认为是几乎完全一样的编码,一个崩溃了,一个可以运行!
  3. HTML/CSS共7k字带你能独立完成简单网页的制作
  4. 【javasim】一个java下的建模仿真平台
  5. vscode编译 不允许使用与号()。 运算符是为将来使用而保留的;请用双引号将与号引起来(““),以将其作为字符串的一部分传递
  6. 再见, Python, 你好, Julia
  7. [转载]打工辛酸路:我是一朵飘零的花之81
  8. 使用GitLab来实现IOS项目的持续集成CI
  9. 计算机网络和http权威指南 读书笔记
  10. 上台紧张的原因有哪些