当前位置:首页 > 日记 > 正文

MySQL插入处理重复键值的几种方法

MySQL插入处理重复键值的几种方法
首先设置2个测试表,并在id列上创建唯一的约束。
MySQL >创建表test1(ID int,NAME varchar(5),int类型,主键);
查询OK,0行受影响(0.01秒)
MySQL >创建表test2(ID int,NAME varchar(5),int类型,主键);
查询OK,0行受影响(0.01秒)
MySQL >选择*从test1;
+ + + +
ID名称类型| | | |
+ + + +
| 101 | AAA | 1 |
| 102 | BBB | 2 |
| 103 | CCC | 3 |
+ + + +
3行(0秒)
MySQL SELECT * FROM test2 >;
+ + + +
ID名称类型| | | |
+ + + +
| 201 | AAA | 1 |
| 202 | BBB | 2 |
| 203 | CCC | 3 |
| 101 | XXX | 5 |
+ + + +
4行(0秒)
1,替换成
首先发现重复删除和插入。如果记录中有多个字段,如果插入时没有插入某些字段,则新插入的记录是空的。
MySQL >更换为test1(ID、名称)(选择ID,名字从test2);
查询OK,5行受影响(0.04秒)
记录:4个重复:1个警告:0
MySQL >选择*从test1;
+ + + +
ID名称类型| | | |
+ + + +
| 101 | XXX |空|
| 102 | BBB | 2 |
| 103 | CCC | 3 |
| 201 | AAA |空|
| 202 | BBB |空|
| 203 | CCC |空|
+ + + +
6行(0秒)
值得注意的是,当你更换,如果插入的表中没有指定的列,它将表达的空,不是桌子的原创内容。如果插入的内容列为插入表列一样,空不appear.for例子
MySQL >更换为test1(ID、名称、类型)(选择ID、名称、类型);
查询OK,8行受影响(0.04秒)
记录:4个重复:4个警告:0
MySQL >选择*从test1;
+ + + +
ID名称类型| | | |
+ + + +
| 101 | XXX | 5 |
| 102 | BBB | 2 |
| 103 | CCC | 3 |
| 201 | AAA | 1 |
| 202 | BBB | 2 |
| 203 | CCC | 3 |
+ + + +
6行(0秒)
如果插入,则需要保留插入表的列,只更新指定的列,然后可以使用第二种方法。
2,插入到重复密钥更新中
发现重复更新操作。在原始记录的基础上,对指定的字段的内容进行更新,而其他字段的内容被保留。例如,我只是想要插入的ID的test2表名字段,但保持test1表类型字段:
MySQL >插入test1(ID、名称、类型)(选择ID、名称、类型);
查询OK,5行受影响(0.04秒)
记录:4个重复:1个警告:0
MySQL >选择*从test1;
+ + + +
ID名称类型| | | |
+ + + +
| 101 | XXX | 1 |
| 102 | BBB | 2 |
| 103 | CCC | 3 |
| 203 | CCC | 3 |
| 202 | BBB | 2 |
| 201 | AAA | 1 |
+ + + +
6行(0秒)
如果插入,只想插入原始表不是的数据,那么可以使用这第三种方法。
3,忽视
确定是否存在,不插入存在,否则插入。很容易理解MySQL在插入时不尝试执行此语句,违反了唯一性约束:
MySQL >插入忽略为test1(ID、名称、类型)(选择ID、名称、类型);
查询OK,3行受影响(0.01秒)
记录:4个重复:1个警告:0
MySQL >选择*从test1;
+ + + +
ID名称类型| | | |
+ + + +
| 101 | AAA | 1 |
| 102 | BBB | 2 |
| 103 | CCC | 3 |
| 203 | CCC | 3 |
| 202 | BBB | 2 |
| 201 | AAA | 1 |
+ + + +
6行(0秒)

相关文章

已经很长时间了,为什么我还没有收到

已经很长时间了,为什么我还没有收到

我还,很长时间,电脑软件,已经很长时间了,为什么我还没有收到结果呢 如果您正在使用邮件来获取投诉进展: 请登录到您的邮箱并及时检查,经过处理后,我们会立即发送邮件。不同的邮件提供者可能有不同的邮件延迟。一些邮件提供商的反垃圾邮件策略…

Oracle9i产品文档

Oracle9i产品文档

产品文档,电脑软件,Oracle9i,Oracle当然你看是Oracle 9i产品文档。 1。增强的可扩展性 Oracle9i真正应用集群是Oracle并行服务器series.oracle9i真正应用集群设计了一种快速、高效的集群共享高速缓存登记访问相同的数据的下一代,因此应用透…

如何更改Windows8中的电源计划集

如何更改Windows8中的电源计划集

计划,如何更改,电源,电脑软件,点评:本文主要介绍了如何改变Windows 8中的电源规划方法,各位需要学习的朋友可以参考一下。 适用范围: Windows 8消费者预览 知识点分析: 更改Windows 8系统下的电源计划设置 操作步骤: 1、在控制面板上,将右上…

的过程cpqsetcpqset.exe系统的作用

的过程cpqsetcpqset.exe系统的作用

作用,系统,过程,电脑软件,exe,点评:Cpqset.exe是惠普休利特帕卡德配置模块,在惠普笔记本电脑通常出现的。这个过程是用于配置多媒体设备 进程文件:cpqset或cpqset.exe 过程名称:休利特帕卡德配置模块 过程类别:安全风险的过程 英文描述: cpqset…

调整虚拟硬盘的大小实现方法

调整虚拟硬盘的大小实现方法

硬盘,虚拟,方法,调整,大小,点评:如何提高Xen虚拟硬盘的大小也就是说,如何扩大Xen镜像文件的大小。这里是一个简短的介绍方便和需要的朋友。 今天,有人来到实验室,抱怨4GB的Xen虚拟磁盘配置,他们太小了,和系统2gb。所以这不足以安装一些工具,如JDK …

新的电脑网络游戏不能使一个游戏变

新的电脑网络游戏不能使一个游戏变

解决方案,能使,流畅,游戏,电脑软件,问题: 这种新的计算机组件,处理器酷睿i5 3470、华硕p8z77-v主板LX,hd7770存储卡的Radeon,金士顿4GB,电源是航嘉jumper450b。当电脑店安装构件使用鬼win7盘系统,现在连电脑网页游戏,单机游戏并不顺利。不知怎的,…

PHP操作数组的一些功能介绍

PHP操作数组的一些功能介绍

操作,数组,功能,电脑软件,PHP,在数组中搜索特定值,如果返回到true,返回false。 布尔in_array(混合针阵列草堆{,布尔严格}) 在数组中查找指定的健康,如果发现返回true,返回false 布尔array_eky_exists(混合键,数组) 在数组中搜索特定值,如果返回到tru…

oracle性能优化研究

oracle性能优化研究

性能优化,电脑软件,oracle,看Oracle教程:Oracle的最终性能优化。我们有理由相信,新的内核版本(2.2.16-3 SMP)也应该具有的性能改进: 说:新版本的内核的TPC结果 加载时间(秒)9.40 事务第二个11.522 目前,有2.4个版本的内核,与2.2相比,性能有了很大的…

P2Pnetworking2.exe-P2Pnetworking

P2Pnetworking2.exe-P2Pnetworking

什么用,电脑软件,exe,评论:对P2P networking2.exe -详细的P2P networking2作用过程 进程文件:P2P networking2或P2P networking2.exe 进程名称:P2P网络广告 过程类别:安全风险的过程 英文描述: P2P networking2.exe由Joltid广告程序。此过程监…

卸载后的杂技演员,CMAP文件夹无法删

卸载后的杂技演员,CMAP文件夹无法删

无法删除,解决方案,卸载,杂技,演员,问题: 当计算机系统卸Acrobat软件,总有一种叫做CMAP,无法删除文件夹,也不以管理员的身份登录。我的电脑是使用win7系统。 答案uff1a 事实上,删除此文件夹也可以不使用管理员超级管理员身份删除。我们只需要…

foobar不能同步歌曲到iPhone提示找

foobar不能同步歌曲到iPhone提示找

同步,提示,找不到,歌曲,电脑软件,问题: 我经常使用foobar2000同步歌曲到iPod,现在我想对iPhone 3GS的同步,我试过很多次,但我不支持更改版本。我找不到iPod。 答案uff1a 我不知道你有foo_dop插件使用foobar2000。如果在没有插件设置,使移动设…

Linux命令APT命令参数

Linux命令APT命令参数

命令,参数,电脑软件,Linux,APT,回顾:Linux命令APT命令参数 缓存搜索包搜索包 缓存显示包获取关于包的信息,如描述、大小、版本等。 sudo apt-get安装包安装包 sudo apt-get install安装包安装包 sudo apt-get -f安装维修安装F = -修复缺…