MySQL 如何实现数据插入
使用MySQL插入数据时,可以根据需求场景选择合适的插入语句,例如当数据重复时如何插入数据,如何从另一个表导入数据,如何批量插入数据等场景。本文通过给出每个使用场景下的实例来说明数据插入的实现过程和方法。
一、方法分类
二、具体方法
使用场景 | 作用 | 语句 | 注意 |
---|---|---|---|
常规插入 | |||
忽略字段名 | |||
insert into 表名 values (值1, 值2,...,值n) | 默认value中的值依次填充所有字,如果出现性冲突,就会抛出异常 | ||
按照字段插入 | |||
insert into 表名(字段1, 字段2,...,字段n) values (值1, 值2,...,值n) | 字段和值一一对应 | ||
一次性插入多条数据 | |||
insert into 表名(字段1, 字段2,...,字段n) values (值a1, 值a2,...,值an),(值b1, 值b2,...,值bn) | 多行之间用逗号隔开,不需要再次写insert into语句 | ||
从另一个表导入 | 导出A表的某些数据插入到B表 | insert into 表名B(字段B1, 字段B2,...,字段Bn) select 字段A1, 字段A2,...,字段An from 表名A where [执行条件] | 字段A和B可以字段名称不一样,但是数据类型必须一致 |
插入时数据重复 | |||
如果记录存在报错 | |||
insert into 表名(字段1, 字段2,...,字段n) values (值1, 值2,...,值n) | 如果插入的数据记录存在,报错并捕获异常,不存在则直接新增记录 | ||
如果记录存在不插入记录 | |||
insert ignore into 表名(字段1, 字段2,...,字段n) values (值1, 值2,...,值n) | 如果插入的数据记录存在就保存旧记录忽略新记录,不存在则直接新增记录 | ||
不论记录是否存在都要插入记录 | |||
replace 表名(字段1, 字段2,...,字段n) values (值1, 值2,...,值n) | 如果插入的数据记录存在就先删除再更新,不存在则直接新增记录 | ||
如果记录存在更新指定字段 | |||
insert into … on duplicate key update | 如果插入的数据记录存在就更新指定字段,不存在则直接新增记录 |
相关文章