MySQL-insert的骚操作
普通插入
insert value
insert table_name [(column_name_list)] values (column_value_list)
- mysql中into无实际意义可以不写
- mysql中values和value无区别,都可以进行批量添加
insert select
insert table_name [(column_name_list)] select column_value_list
- select可以写固定值,也可以是具体是查询语句。可利用此特点,让此语法可以实现满足指定条件才进行添加;或将符合添加的数据批量添加
insert set
insert table_name set column_name= column_value[,...]
- 此语法不支持批量添加
- 此语法可移植性较差,很多数据库不支持
插入或代替
replace table_name [(column_name_list)] values(column_value_list)
- 会将所有发生主键或唯一索引冲突的数据都删除掉,再进行添加
插入或修改
insert table_name [(column_name_list)] values(column_value_list) on duplicate key update column_name=column_value[,...]
- 当插入语句发生主键或唯一索引冲突时,执行修改操作。但是当有多条语句冲突时,修改操作只会对第一条数据起效
插入或忽略
insert ignore table_name [(column_name_list)] values (column_value_list)
- 当插入语句发生冲突或者错误时,不会报错而是忽略此次操作。要注意语句本身不要有错误