首页 > 数据库 >mysql中replace into用法

mysql中replace into用法

时间:2024-04-17 16:47:36浏览次数:19  
标签:into replace num mysql id 主键 1000

前言

replace into 跟 insert into 功能类似,不同点在于:replace into 首先尝试插入数据到表中

  1. 如果发现表中已经有相同的数据(根据主键或者唯一索引判断)则先删除原来的数据,然后插入新的。
  2. 否则,直接插入新数据。

注意:插入数据的表必须有主键或者是唯一索引!否则的话,replace into 会直接插入数据,这将导致表中出现重复的数据。

使用

创建表

CREATE TABLE `test_res_slave_current_200` (
  `k` int(10) unsigned NOT NULL,
  `id` int(10) unsigned NOT NULL,
  `num` int(10) unsigned NOT NULL,
  PRIMARY KEY (`k`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入数据

insert into test_res_slave_current_200(k,id,num) values(2404021140,1000,1000);
insert into test_res_slave_current_200(k,id,num) values(2404021140,1000,1000); // 报错 主键重复
replace into test_res_slave_current_200(k,id,num) values(2404021140,1000,1000); // 执行成功 如果主键存在且其他列数据有变更 影响行数为2,其他情况为1

参考

MYSQL中replace into的用法

标签:into,replace,num,mysql,id,主键,1000
From: https://www.cnblogs.com/strongmore/p/18109945

相关文章

  • docker部署mysql
    docker部署mysqlmkdir-p/data/docker/mysql5.7/{data,conf.d}mkdir-p/data/docker/mysql8/{data,conf.d}version:'3'services:mysql_5.7:image:mysql:5.7.40restart:alwaysports:-13306:3306environment:-MYSQL_ROOT_PAS......
  • mysql主从升级(直接先升级主库,旧binlog拷贝到新版本目录,需要停业务)
    环境:OS:Centos7旧版本:mysql5.6新版本:mysql5.71.停掉旧版本数据库确保主从当前没有延迟再停主库,不过有延迟也可以停掉查看从库的状态mysql>showslavestatus\G;***************************1.row***************************Slave_IO_State:Wai......
  • MySQL8 设置大小写敏感
    https://blog.csdn.net/xhmico/article/details/136680013今天对我本地的数据库迁移服务器上,完成之后启动项目报错 说数据库中不存在quartz_LOCKS这张表 我打开服务器上面的数据上面展示的表名是quartz_LOCKS,然后通过查询lower_case_table_names配置可知showvariabl......
  • mysql复制数据库
    mysql复制数据库,导出导入方法一:使用mysqldump创建新的数据库createdatabasenew_db同一个mysql服务器复制数据库方法mysqldumpold_db-u账户-p密码|mysql-P端口new_db-u账户-p密码不同mysql服务器复制数据库方法mysqldumpold_db-u账户-p密码|m......
  • mysql小版本升级(yg)
    mysql小版本升级两种方式:In-PlaceUpgradeLogicalUpgrade[In-PlaceUpgrade](#in-placeupgrade)​ 原地升级(In-PlaceUpgrade:直接替换二进制文件(即直接yumupdate/rpm-Uvh升级rpm包)数据库目录等都不变。LogicalUpgrade​ 逻辑升级(LogicalUpgrade):先用mysqldump......
  • mysql小版本升级
    #rpm-ivhmysql-community-common-8.0.23-1.el8.x86_64.rpm#rpm-ivhmysql-community-client-plugins-8.0.23-1.el8.x86_64.rpm#rpm-ivhmysql-community-libs-8.0.23-1.el8.x86_64.rpm#rpm-ivhmysql-community-client-8.0.23-1.el8.x86_64.rpm#rpm-ivhmy......
  • mysql问题排查常用脚本
    查询出执行时间较长的进程select*frominformation_schema.processlistwherecommand!='Sleep'andtime>5*60orderbytimedesc;select*frominformation_schema.processlistwhereCommand!='Sleep'orderbyTimedesc;查看进程showfullprocess......
  • mysql主从复制
    master配置[mysqld]datadir=/data/mysqlsocket=/var/lib/mysql/mysql.socklog-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pidlog-bin=mysql-bin#启用二进制日志server-id=98#服务器唯一ID,可以任意设置,但必须唯一#binlog-ignore-db=mysql#不......
  • yum安装指定版本mysql
    参考链接:https://blog.csdn.net/Sunny_Future/article/details/105345493参考链接:https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html安装好依赖环境yuminstall-yyum-utilswget下载仓库包wgethttps://dev.mysql.com/get/mysql80-community-rel......
  • ubuntu安装mysql
    ubuntu安装mysql方法一、使用apt仓库更新软件列表aptupdate查看可用的MySQL版本aptlist|grepmysql-server或者aptsearchmysql-server安装指定版本的MySQL服务器aptinstallmysql-server-<version>例如安装8.0aptinstallmysql-server-8.0使用......