MySQL-insert的骚操作

MySQL-insert的骚操作

起男 108 2024-12-26

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)

  • 当插入语句发生冲突或者错误时,不会报错而是忽略此次操作。要注意语句本身不要有错误