我们大家都知道当unique列在一个UNIQUE键上需要插入包含重复值的记录的时候,其默认insert的时候有时报错误,MySQL插入处理重复键值的2种不同的处理 *** ,下面我们对其进行分别介绍。
先建立2个测试表,在id列上创建unique约束。
MySQL select * from test2; +-----+------+------+ | id | name | type | +-----+------+------+ | 201 | aaa | 1 | | 202 | bbb | 2 | | 203 | ccc | 3 | | 101 | xxx | 5 | +-----+------+------+ 4 rows in set (0.00 sec)
MySQL插入处理重复键值 *** 1、REPLACE INTO
发现重复的先删除再插入,如果记录有多个字段,在插入的时候如果有的字段没有赋值,那么新插入的记录这些字段为空。
MySQL select * from test1; +-----+------+------+ | id | name | type | +-----+------+------+ | 101 | xxx | NULL | | 102 | bbb | 2 | | 103 | ccc | 3 | | 201 | aaa | NULL | | 202 | bbb | NULL | | 203 | ccc | NULL | +-----+------+------+ 6 rows in set (0.00 sec)
需要注意的是,当你replace的时候,如果 *** 入的表如果没有指定列,会用NULL表示,而不是这个表原来的内容。如果插入的内容列和 *** 入的表列一样,则不会出现NULL。例如
MySQL select * from test1; +-----+------+------+ | id | name | type | +-----+------+------+ | 101 | xxx | 5 | | 102 | bbb | 2 | | 103 | ccc | 3 | | 201 | aaa | 1 | | 202 | bbb | 2 | | 203 | ccc | 3 | +-----+------+------+ 6 rows in set (0.00 sec)
如果INSERT的时候,需要保留 *** 入表的列,只更新指定列,那么就可以使用第二种 *** 。
MySQL插入处理重复键值 *** 2、INSERT INTO ON DUPLICATE KEY UPDATE
发现重复的是更新操作。在原有记录基础上,更新指定字段内容,其它字段内容保留。例如我只想插入test2表的id,name字段,但是要保留test1表的type字段:
MySQL select * from test1; +-----+------+------+ | id | name | type | +-----+------+------+ | 101 | xxx | 5 | | 102 | bbb | 2 | | 103 | ccc | 3 | | 201 | aaa | 1 | | 202 | bbb | 2 | | 203 | ccc | 3 | +-----+------+------+ 6 rows in set (0.00 sec)
如果INSERT的时候,只想插入原表没有的数据,那么可以使用其他的MySQL插入处理重复键值的 *** 。
在Windows 7系统的默认设置中,当Windows 7系统处于休眠状态时,会同时断网的。如此一来,无论你正在使用迅雷还是快车等下载工具,同样可以在休眠状态下继续完成下载,最大限度做到从身边的小事开始支持环保。下面我们就详细介绍操作步骤,帮助Windows 7系统用户实现这一节能目标。 首先需要...
Windows 7 64位系统开机后提示"press any key to restart",无法进入系统了,具体现象如下所示: 故障分析: 故障的主要原因还是硬盘的问题,可以先检查是不是接触不良或坏了,进行修复或更换即可。 解决方法: 1、开机按F8不动到高级选项出现在松手,选“...
ubuntu14.04应用窗口列表在哪里?在ubuntu下打开个几个应用窗口最小化后怎么切换呢,应用窗口列表在哪里呢? 1、多打开几个chrome浏览器窗口。 2、然后都做最小化处理。 3、现在我们在桌面左边的面板上找到"左右两边有小白点"的chrome浏览器应用图标,这就是chr...
用Windows 7久了,C盘越来越大,原来50G的空间基本用完了,又不想重装系统,就想着能不能直接扩容。 在网上搜了半天,看了无数教程,都写得不明不白的,结合了几篇教程才终于搞明白。 重新总结一下,方便有需要的人。 所用软件: http://www.jb51.net/softs/57895...
解决方法: 其实处理这些使用流氓软件,需要将相关的.exe文件删除,使它不能再运行,或者直接清除这个服务本身,使计算机重启的时候,它不会再启动。比如Hijackthis扫描,在扫描日志中,一般会把非Windows系统的服务以023的方式列出来,如下面这段: O23 - ...
Windows 7系统可以对每个文件夹进行个性化视图设置,可以根据自己的个人喜好和实际需要更改文件或文件夹图标的大小,或者让文件或文件夹以列表、平铺等方式显示。但是,假如你对N个文件夹视图进行了风格各异的个性设置,现在又想让所有文件夹都使用同一种视图怎么办呢 手工一个一个修改,你OUT了,非累得手抽...