MySQL replace into
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL replace into,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1651字,纯文字阅读大概需要3分钟。
内容图文
![MySQL replace into](/upload/InfoBanner/zyjiaocheng/502/c0a0d0c256c340889209300f25447b5b.jpg)
- replace into。
- MySQL中实现replace into操作方式:
思路:通过判断插入的记录里是否存在主键索引或唯一索引冲突,来决定是插入还是更新。当出现主键索引或唯一索引冲突时则进行update操作,否则进行insert操作。
实现:使用 replace into t(filedA, filedB...) values(value1, value2);
来看看下面具体实现过程。
一、准备数据表
CREATE TABLE `demo` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`a` tinyint(1) unsigned NOT NULL DEFAULT ‘0‘,
`b` tinyint(1) unsigned NOT NULL DEFAULT ‘0‘,
`c` tinyint(1) unsigned NOT NULL DEFAULT ‘0‘,
`d` tinyint(1) unsigned NOT NULL DEFAULT ‘0‘,
`e` tinyint(1) unsigned NOT NULL DEFAULT ‘0‘,
`f` tinyint(1) unsigned NOT NULL DEFAULT ‘0‘,
PRIMARY KEY (`id`),
UNIQUE KEY `unq_a_b_c` (`a`,`b`,`c`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
注意:表中存在两处索引,id为主键索引,a,b,c为联合唯一索引。
二、写入初始数据
insert into test.demo(a,b,c,d,e,f) values(1,2,3,1,1,1);
此时存在由abc散列组成唯一索引数据:1,2,3。
三、进一步实现
replace into into demo(a,b,c,d,e,f) values(1,2,3,2,2,2);
因为已经存在由abc三列组成唯一索引数据:1,1,1,本次又写入demo(a,b,c,d,e,f) values(1,1,1,2,2,2),会造成唯一索引冲突。
因此,会删除掉原来记录,新增一条记录。
replace into字段有primary key字段时,会更新本条记录
replace into字段没有primark key字段,发生唯一索引冲突,会删除原来的记录,新增一条记录
在向表中插入数据的时候,经常遇到这样的情况:
1. 首先判断数据是否存在
2. 如果不存在,则插入
3. 如果存在,则更新
MySQL replace into
标签:更新 block 思路 upd 存在 删除 方式 ima led
本文系统来源:http://blog.51cto.com/phpme/2309050
内容总结
以上是互联网集市为您收集整理的MySQL replace into全部内容,希望文章能够帮你解决MySQL replace into所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。