INSERT...ON DUPLICATE KEY UPDATE

2019-07-23  本文已影响0人  wuli學

参考:MySQL8.0使用手册

使用须知:

  1. 通常,您应该尽量避免ON DUPLICATE KEY UPDATE 在具有多个唯一索引的表上使用子句,有可能会造成锁问题从而影响性能;
  2. ON DUPLICATE KEY UPDATE子句可以包含多个列分配,以逗号分隔;
  3. ON DUPLICATE KEY UPDATE可以利用INSERT字句的VALUES来进行赋值,比如:
INSERT INTO t1 (a,b,c) VALUES (1,2,3),(4,5,6)
  ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b);

关于返回

  1. 对于ON DUPLICATE KEY UPDATE,如果将行作为新行插入,则每行的受影响行值为1;
  2. 如果更新现有行,则为2,如果现有行设置为其当前值,则为0;
  3. 如果在连接到mysqld时指定C API函数的 CLIENT_FOUND_ROWS标志,则 如果将现有行设置为其当前值,则affected-rows值为1(不为0)。
上一篇 下一篇

猜你喜欢

热点阅读