MySQL 8.0的新增功能探索-行和列别名具有ON DUPLICATE KEY UPDATE

  • 行和列别名具有ON DUPLICATE KEY UPDATE。 从MySQL 8.0.19开始,可以使用别名引用要插入的行,以及(可选)引用其列。考虑在具有列 和INSERT的表t上的以下 语句 : a``b
INSERT INTO t SET a=9,b=5
ON DUPLICATE KEY UPDATE a=VALUES(a)+VALUES(b);

使用new新行的别名,在某些情况下,使用别名m以及 n该行的列,INSERT可以用许多不同的方式重写该 语句,此处显示了一些示例:

INSERT INTO t SET a=9,b=5 AS new
ON DUPLICATE KEY UPDATE a=new.a+new.b;

INSERT INTO t VALUES(9,5) AS new
ON DUPLICATE KEY UPDATE a=new.a+new.b;

INSERT INTO t SET a=9,b=5 AS new(m,n)
ON DUPLICATE KEY UPDATE a=m+n;

INSERT INTO t VALUES(9,5) AS new(m,n)
ON DUPLICATE KEY UPDATE a=m+n;

欲了解更多信息和示例,请参见 第13.2.6.2,”INSERT … ON DUPLICATE KEY UPDATE语句”