MySQL是否支持像"error_on_nondeterministic_update"这样的参数?



下面提到的update语句应该返回一个错误,因为有两个匹配的值。

drop table t1;
drop table t2;
CREATE TABLE t1(x1 int, y1 int);
CREATE TABLE t2(x2 int, y2 int);
INSERT INTO t1 VALUES (1,10), (2,20), (3,30);
INSERT INTO t2 VALUES (2,40), (2,50);
UPDATE t1 as a inner join t2 as b  SET a.y1=b.y2 WHERE a.x1=b.x2;

这将把值2更新为40,并将忽略存在另一个值为50的行。如果我得到一个错误,我就会知道我的联接查询有问题。

如果您将其写成子查询,您将得到一个错误

UPDATE t1 as a 
SET a.y1=( select b.y2 from t2 as b  WHERE a.x1=b.x2)

相关内容

  • 没有找到相关文章

最新更新