nodejs mysql 插入时受影响的行

nodejs mysql affectedRows on insert

我正在阅读 mysql npm 包文档并且想知道以下内容:

我不明白插入语句中是否存在 affectedRows,在什么情况下 affectedRows 为 0?我假设当插入语句失败时会抛出一个错误。谁能详细说一下?

如果您使用 INSERT with SELECT 加法,则受影响的行数可以超过 1。 MySQL 中的 INSERT 语句也有选项 ON DUPLICATE KEY UPDATE and if during insert some row was updated then AffectedRows count for this row will be 2, not 1. Also INSERT has IGNORE 选项,如果插入实际上没有完成,那么该行的 AffectedRows 将为 0。

  • 在从 insert ... select 插入数据等情况下很有用,其中 select 可以有条件,所以没有事先知道将实际插入多少行或哪些行。
  • 可能还有其他情况,例如 insert ignore