来源:自学PHP网 时间:2015-04-16 10:51 作者: 阅读:次
[导读] 最近才发现mysql的插入语句居然有如此多的用法,这里拿来分享一下 ①关于insert into : insert into table_name values(); insert into table_name (column) values (); insert into ta...
最近才发现mysql的插入语句居然有如此多的用法,这里拿来分享一下. ①关于insert into : insert into table_name values(); insert into table_name (column) values (); insert into table_name values(select (column) from table_name2); 这里的插入只需要注意一点的就是: 如果发生主键冲突,(也就是插入的主键已经在表中存在时),系统报错. ②replace into : replace into 跟 insert into 功能类似,不同点在于:replace into 首先尝试插入数据到表中, 1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。 2. 否则,直接插入新数据。 ③insert ignore into insert ignore into 与 insert into 的主要区别在于当发生主键冲突的时候,系统不会报错,直接跳过该条记录的插入. 感觉是不是很有意思呢... 下面我们来做个实验. create table test ( `id` int(11) not null auto_increment comment '主键', `name` varchar(20) not null comment '姓名', primary key (`id`) )ENGINE=InnoDB DEFAULT CHARSET utf8 comment='测试表'; 然后我们插入几条数据进去. insert into test (name) values ('vein'); insert into test (name) values ('vein1'); insert into test (name) values ('vein2'); 当执行下面这条语句时: insert into test (id,name) values (1,'vein11'); 系统会报错,说主键冲突. 如果执行下面的语句时: insert ignore into test (id,name) values (1,'vein11'); 系统不会报错,直接忽略. replace into test(id,name) values(1,'vein11'); 系统插入成功,并且修改表中记录为 1, vein11. Edited by VeinQueen |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com