使用场景:

操作某个用户信息时,没有就创建该用户,有则修改该用户信息。

方法一 :replace into


replace into 会根据唯一索引或主键进行判断,如果存在则覆盖写入字段,如果不存在则新增。该方法底层是先delete再insert,如果有子表依赖的话不建议使用。
样例:

REPLACE INTO demo(id,name,age) VALUES (1,''张山',19)

方法二 :on duplicate key


on duplicate key 新增时如果导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE,如果不会导致唯一值列重复的问题,则插入新行。该方法使用是要小心避免多个唯一索引的情况下使用,当出现多个唯一索引时会出现修改任意一行数据的结果。
样例:

#values(col_name)函数只是取当前插入语句中的插入值
INSERT INTO demo(id,name,age) VALUES (1,''张山',19)
ON DUPLICATE KEY UPDATE name = values(name),age = values(age);#age = age + values(age)可起到累加作用
INSERT INTO demo(id,name,age) VALUES (1,''张山',19)
ON DUPLICATE KEY UPDATE name = values(name),age = age + values(age)#@ageVal可起到原子性查询数据
INSERT INTO demo(id,name,age) VALUES (1,''张山',@ageVal:=19)
ON DUPLICATE KEY UPDATE name = values(name),age = age + values(age);
select @ageVal;#当id为主键,age为唯一索引时,数据中存在id=1,age=19时,上面的语句就相当于
UPDATE demo SET name='张山' WHERE id=1 OR age=19 LIMIT 1;

mysql 有数据就修改,无数据则新增相关推荐

  1. 【mysql】 数据表修改字段的数据类型

    [mysql] 数据表修改字段的数据类型 1.背景 2.修改字段的数据类型 1.背景 当数据表创建之后,发现数据表字段的数据类型不合适,我们可以立即删除后重新创建: 但是一旦存上大量数据之后,我们更希 ...

  2. mysql导入数据提前修改字段_Mysql一些导入导出数据库,添加修改字段命令_MySQL...

    bitsCN.com Mysql 导出数据库表包含数据命令: mysqldump -uroot -proot abc >/var/abc.sql; (mysql用户名:root 密码root 数 ...

  3. mysql导入数据提前修改字段_复习MySQL③导入数据、检查及修改

    导入数据: 用insert into语句为表插入数据: - insert into 表名(字段1,字段2,-) values -- 导入外部文本文件: - 导入外部txt文件(导入CSV文件分隔符为' ...

  4. cacti 监控mysql 无数据_cacti无图无数据等常见问题排查

    cacti登录密码忘记解决方法 如果是admin 的密码丢失,id = 1:其他用户以此类推. 进入mysql mysql> show databases; mysql> use cact ...

  5. linux mysql 数据文件,Linux下修改MySQL数据库数据文件路径的步骤

    使用rpm安装方式安装完MySQL数据库后,数据文件的默认路径为/var/lib/mysql,然而根目录并不适合用于存储数据文件. 原路径:/var/lib/mysql 目标路径:/home/mysq ...

  6. 【MySQL随手记】一个踩坑记录:在安全更新模式下进行数据的修改与删除

    目录 前言 1 MySQL练习的数据准备 2 Error Code:1175与安全更新模式 2.1 Error Code:1175 2.2 安全更新模式 3  安全更新模式下的update和delet ...

  7. php读取mysql数据无法修改时间_php设置mysql查询读取数据的超时时间

    php可以设置mysql查询的超时时间估计大家不知道吧,一般都直接在mysql中进行设置了,下面我们来为各位介绍一下php设置mysql查询读取数据的超时时间吧. 现象:php能通过代理正常连接到my ...

  8. cmd命令窗口mysql查询表数据命令行_cmd 命令行模式操作数据库 添加查询 修改 删除 ( 表 字段 数据)...

    一 查看数据库.表.数据字段.数据 1 首先配置环境变量 进入mysql  或者通过一键集成工具 打开mysql命令行  或者mysql 可视化工具 打开命令行 进入这样的界面   不同的机器操作不同 ...

  9. linux mysql库文件路径设置_MySQL_linux修改mysql数据库文件的路径,mysql更改数据文件的存放路径 - phpStudy...

    linux修改mysql数据库文件的路径 mysql更改数据文件的存放路径感觉直接把/etc/my.cnf中的datadir改一下重启一下服务就行,但是从网上搜了n多资料,大部分都是更改my.cnf中 ...

最新文章

  1. (C++)按照公式求圆周率pi的近似值的两种方法
  2. C++11中的Lambda表达式
  3. vc中出现stack overflow错误(VS设置默认栈大小)
  4. html圆角边框只有左边,border-radius以外的CSS圆角边框制作方法
  5. Angular Component的DOM级别的单元测试方法
  6. 【数据结构与算法】排序优化
  7. Docker Installation : Docker 中安装并启动 Kong
  8. HTML5文档查看器PrizmDoc发布v13.0,新增文档比较功能
  9. 要尊重员工的正当权益
  10. html如何消除空格字符串,jquery如何去除字符串的空格
  11. 一个从培训机构出来的程序员
  12. 读书笔记——好句摘抄
  13. linux中如何修改只读文件
  14. 文件服务器批量权限修改,服务器文件批量权限设置权限
  15. JPG/JEPG在十六进制文件格式
  16. S5PV210 iNAND/SD卡
  17. Go语言为什么值得学习?
  18. R Error: BiocParallel errors 1 remote errors, element index: 1 506 unevaluated and other errors解决办法
  19. 提醒大家提高安全意识: 虎口脱险记
  20. What can neural networks reason about?论文解析

热门文章

  1. 在CSDN的六载时光,由你来决定今年的博客之星
  2. html5网页分享到朋友圈,微信公众平台网页开发实战--1.微信分享一个网页到朋友圈...
  3. i.MX6ULL开发板【终结者】硬件资源说明
  4. python+树莓派+方向盘打造4G遥控车——之五 MCP3008方向盘角度监测
  5. 详解python单例模式
  6. 2020-10-24周总结
  7. 音乐播放器项目:使用网易云音乐api开发网页版音乐播放器开发难题(一)
  8. Ubuntu 网络应用服务器 Apache 配置基础
  9. 2021美亚杯个人赛记录
  10. GStreamer | 一