mysql 有数据就修改,无数据则新增
使用场景:
操作某个用户信息时,没有就创建该用户,有则修改该用户信息。
方法一 :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 有数据就修改,无数据则新增相关推荐
- 【mysql】 数据表修改字段的数据类型
[mysql] 数据表修改字段的数据类型 1.背景 2.修改字段的数据类型 1.背景 当数据表创建之后,发现数据表字段的数据类型不合适,我们可以立即删除后重新创建: 但是一旦存上大量数据之后,我们更希 ...
- mysql导入数据提前修改字段_Mysql一些导入导出数据库,添加修改字段命令_MySQL...
bitsCN.com Mysql 导出数据库表包含数据命令: mysqldump -uroot -proot abc >/var/abc.sql; (mysql用户名:root 密码root 数 ...
- mysql导入数据提前修改字段_复习MySQL③导入数据、检查及修改
导入数据: 用insert into语句为表插入数据: - insert into 表名(字段1,字段2,-) values -- 导入外部文本文件: - 导入外部txt文件(导入CSV文件分隔符为' ...
- cacti 监控mysql 无数据_cacti无图无数据等常见问题排查
cacti登录密码忘记解决方法 如果是admin 的密码丢失,id = 1:其他用户以此类推. 进入mysql mysql> show databases; mysql> use cact ...
- linux mysql 数据文件,Linux下修改MySQL数据库数据文件路径的步骤
使用rpm安装方式安装完MySQL数据库后,数据文件的默认路径为/var/lib/mysql,然而根目录并不适合用于存储数据文件. 原路径:/var/lib/mysql 目标路径:/home/mysq ...
- 【MySQL随手记】一个踩坑记录:在安全更新模式下进行数据的修改与删除
目录 前言 1 MySQL练习的数据准备 2 Error Code:1175与安全更新模式 2.1 Error Code:1175 2.2 安全更新模式 3 安全更新模式下的update和delet ...
- php读取mysql数据无法修改时间_php设置mysql查询读取数据的超时时间
php可以设置mysql查询的超时时间估计大家不知道吧,一般都直接在mysql中进行设置了,下面我们来为各位介绍一下php设置mysql查询读取数据的超时时间吧. 现象:php能通过代理正常连接到my ...
- cmd命令窗口mysql查询表数据命令行_cmd 命令行模式操作数据库 添加查询 修改 删除 ( 表 字段 数据)...
一 查看数据库.表.数据字段.数据 1 首先配置环境变量 进入mysql 或者通过一键集成工具 打开mysql命令行 或者mysql 可视化工具 打开命令行 进入这样的界面 不同的机器操作不同 ...
- linux mysql库文件路径设置_MySQL_linux修改mysql数据库文件的路径,mysql更改数据文件的存放路径 - phpStudy...
linux修改mysql数据库文件的路径 mysql更改数据文件的存放路径感觉直接把/etc/my.cnf中的datadir改一下重启一下服务就行,但是从网上搜了n多资料,大部分都是更改my.cnf中 ...
最新文章
- (C++)按照公式求圆周率pi的近似值的两种方法
- C++11中的Lambda表达式
- vc中出现stack overflow错误(VS设置默认栈大小)
- html圆角边框只有左边,border-radius以外的CSS圆角边框制作方法
- Angular Component的DOM级别的单元测试方法
- 【数据结构与算法】排序优化
- Docker Installation : Docker 中安装并启动 Kong
- HTML5文档查看器PrizmDoc发布v13.0,新增文档比较功能
- 要尊重员工的正当权益
- html如何消除空格字符串,jquery如何去除字符串的空格
- 一个从培训机构出来的程序员
- 读书笔记——好句摘抄
- linux中如何修改只读文件
- 文件服务器批量权限修改,服务器文件批量权限设置权限
- JPG/JEPG在十六进制文件格式
- S5PV210 iNAND/SD卡
- Go语言为什么值得学习?
- R Error: BiocParallel errors 1 remote errors, element index: 1 506 unevaluated and other errors解决办法
- 提醒大家提高安全意识: 虎口脱险记
- What can neural networks reason about?论文解析
热门文章
- 在CSDN的六载时光,由你来决定今年的博客之星
- html5网页分享到朋友圈,微信公众平台网页开发实战--1.微信分享一个网页到朋友圈...
- i.MX6ULL开发板【终结者】硬件资源说明
- python+树莓派+方向盘打造4G遥控车——之五 MCP3008方向盘角度监测
- 详解python单例模式
- 2020-10-24周总结
- 音乐播放器项目:使用网易云音乐api开发网页版音乐播放器开发难题(一)
- Ubuntu 网络应用服务器 Apache 配置基础
- 2021美亚杯个人赛记录
- GStreamer | 一