视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
mysql数据库插入语句之insertinto,replaceinto,insertignore_MySQL
2020-11-09 19:44:51 责编:小采
文档


最近才发现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. 否则,直接插入新数据。
要注意的是:插入数据的表必须有主键或者是唯一索引!否则的话,replace into 会直接插入数据,这将导致表中出现重复的数据。

③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

下载本文
显示全文
专题