mysql insert 命令_MySQL插入去重命令_INSERT IGNORE INTO

之前在介绍INSERT INTO命令时,曾经提到,该命令在执行数据插入操作时,会在数据库中对元组的主键进行检测,若没有存在,则执行插入动作,若存在,则会报错。

而INSERT IGNORE INTO命令与其不同的是,INSERT IGNORE会忽略数据库中已经存在的记录:

如果数据库没有数据,就插入新的数据;如果有数据的话就跳过这条数据。

这样就可以保留数据库中已经存在数据,达到在间隙中插入数据的目的。

需要说明的是,INSERT INTO和INSERT IGNORE INTO只根据“主键值”或“unique索引”进行判断,只要主键值已在数据库中存在,则认为即将插入重复记录。

语句:

INSERT IGNORE INTO table_name (field1,field2) values (value1,value2);

示例:

mysql> select * from staff_3;

+----------+-------+

| name | slary |

+----------+-------+

| liding | |

| haofugui | |

| xiaoli | |

+----------+-------+

rows in set (0.00 sec)

mysql> describe staff_3;

+-------+----------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-------+----------+------+-----+---------+-------+

| name | char() | NO | PRI | | |

| slary | int() | YES | | NULL | |

+-------+----------+------+-----+---------+-------+

rows in set (0.00 sec)

mysql> insert into staff_3 (name,slary) values ('xiaoli',);

ERROR (): Duplicate entry 'xiaoli' for key 'PRIMARY'

mysql> insert ignore into staff_3 (name,slary) values ('xiaoli',);

Query OK, rows affected (0.00 sec)

mysql> select * from staff_3;

+----------+-------+

| name | slary |

+----------+-------+

| liding | |

| haofugui | |

| xiaoli | |

+----------+-------+

rows in set (0.00 sec)

MySQL插入去重命令_REPLACE INTO

以主键和unique索引为依据. INSERT INTO:表中不存在对应的记录,则插入:若存在对应的记录,则报错: INSERT IGNORE INTO:表中不存在对应的记录,则插入:若存在对应的记录 ...

mysql插入操作跳过(ignore)、覆盖(replace into)、更新(on duplicate key)

原帖地址:http:.html .insert ignore into 当插入数据时,如出现错误时,如重复数据,将不返回错误,只以警告形式返回.所以使用ignore请确保语句本身没有问题,否则也会被忽 ...

mysql插入数据时 insert IGNORE、ON DUPLICATE KEY UPDATE、replace into

转: mysql insert时几个操作DELAYED .IGNORE.ON DUPLICATE KEY UPDATE的区别 博客分类: mysql基础应用   mysql insert时几个操作DE ...

MySQL语句和命令大全

前言 这里记录的是这两年学习工作过程中遇到的常用的 MySQL 语句和命令,部分是网上收集来的,出处已经不记得了,这里先谢过这些大佬.本文包括常见 SQL 语句,还有部分运维语句和命令,没有做详细的说 ...

mysql 插入/更新数据

mysql 插入/更新数据 INSERT 语句 1.一次性列出全部字段的值,例如: INSERT INTO student VALUES('Chenqi','M', 29); INSERT INTO ...

mysql常用的命令大全

常用的MySQL命令大全一.连接MySQL格式: mysql -h主机地址 -u用户名 -p用户密码1.例1:连接到本机上的MYSQL.首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令 ...

mysql 基础指令/命令

1.连接Mysql 格式: mysql -h主机地址 -u用户名 -p用户密码1.连接到本机上的MYSQL.首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root - ...

MySQL操作mysqldump命令详解

--all-databases , -A导出全部数据库. --all-tablespaces , -Y导出全部表空间. --no-tablespaces , -y不导出任何表空间信息. --add-d ...

mysql 插入数据失败防止自增长主键增长的方法

mysql设置了自增长主键ID,插入失败的那个自增长ID也加一的,比如失败5个,下一个成功的不是在原来最后成功数据加1,而是直接变成加6了,失败次数一次就自动增长1了,能不能让失败的不增长的? 或者说 ...

随机推荐

Android Studio配置OpenCV(非NDK)

参考:http://www.cnblogs.com/tail/p/4618476.html 工具: 1,Android Studio(AS)1.4 2,Opencv 2.4.11 步骤: 1,解压下载 ...

(转载)word-wrap,word-break,white-space,text-overflow的区别和用法

在div中,文本布局经常出现,换行混乱的情况.问题表现:1.如果是全英文字符串,中间不包含任何符号(包括空格),不自动换行.           2.中英文混写,则在英文字符串的开始处换行(英文长度& ...

查询--游标 limit skip sort

打印出所有的里程: var cursor = db.tblDaily.find(); cursor.forEach(function(x){ print(x.DailyCount + x.DailyU ...

c语言基础学习01

=============================================================================每一种语言都有其独特的语法规则与语言定义. 指 ...

【AGC010D】Decrementing

Solution 日常博弈论做不出来. 首先,数值全部为1的局面先手必败. 在接下来的过程中,我们只关注那些大于1的数值. 按照官方题解的思路,首先想一个简化版的问题:没有除的操作,其余相同.那么局面 ...

(原创)OpenStack服务如何使用Keystone (二)---部署和配置Keystone中间件

(一)Keystone端的操作 (二)如何在OpenStack服务上部署Keystone中间件 (三)详细配置keystonemiddleware 部署OpenStack时一般先安装Keystone服 ...

LNMP环境+ 前后端项目部署+redis+redis扩展

LNMP 环境    (参照https://lnmp.org/install.html) wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz & ...

CSS 笔记——导航栏、下拉菜单、提示工具

8. 导航栏.下拉菜单.提示工具 (1)导航栏 垂直导航栏

&l ...

Codeforces Round #201 (Div. 2)C,E

数论: C. Alice and Bob time limit per test 2 seconds memory limit per test 256 megabytes input standar ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值