1. on duplicate key update的作用是:如果数据不存在,则插入新数据,否则更新数据。2.如果行作为新记录被插入,则受影响行的值为1;如果原有的记录被更新,则受影响行的值为2。
在MySQL数据库中,如果在insert语句后面带上ON DUPLICATE KEY UPDATE 子句,而要插入的行与表中现有记录的惟一索引或主键中产生重复值,那么就会发生旧行的更新;如果插入的行数据与现有表中记录的唯一索引或者主键不重复,则执行新纪录插入操作。
例子:本案例是主键重复,实现确保唯一,没有则添加,有则更新
假设现在analysis_t表中现在没有任何数据,第一次执行这条语句,因为主键为“asdz“的数据在表中不存在,执行sql执行执行insert 部分的语句,即执行插入操作;
现在表中存在主键为“asdz”的这条数据,这条语句后面的部分怎么修改,甚至在on duplicatekey update后面的语句更改主键字段的值,改为‘asdzy’,再次执行这条语句,只会执行update后面的语句;
结论:先判断inset语句后面主键id的数据是否存在,不存在进行添加操作,存在进行修改操作。4.记录的word文档已经存到百度网盘