没有子查询的UPDATE引发错误:子查询返回多于1行 [英] UPDATE with no subquery throws error: Subquery returns more than 1 row

查看:66
本文介绍了没有子查询的UPDATE引发错误:子查询返回多于1行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人可以向我解释一下... :) (使用MySQL 5.6.13)

Can somebody explain to me this... :) (using MySQL 5.6.13)

UPDATE offer SET cosid=1 WHERE id=40;
Query OK, 1 row affected (0.07 sec)
Rows matched: 1  Changed: 1  Warnings: 0

UPDATE offer SET cosid=4 WHERE id=40;
ERROR 1242 (21000): Subquery returns more than 1 row

UPDATE offer SET cosid=5 WHERE id=40;
Query OK, 1 row affected (0.04 sec)
Rows matched: 1  Changed: 1  Warnings: 0

除四个:(

这是报价表:

CREATE TABLE offer (
  id               bigint(20) NOT NULL AUTO_INCREMENT, 
  authorid         bigint(20) NOT NULL, 
  offered_designid bigint(20) NOT NULL, 
  cdid             bigint(20), 
  cosid            bigint(20) NOT NULL, 
  PRIMARY KEY (id), 
  UNIQUE INDEX (id)) ENGINE=InnoDB;

任何建议可能有什么问题吗?

Any suggestion what might be wrong?

已这是当前cos表:

SELECT * FROM cos;
+----+-------------+
| id | offer_state |
+----+-------------+
|  1 | active      |
|  5 | cancelled   |
|  3 | inactive    |
|  4 | realized    |
|  2 | waiting     |
+----+-------------+

组5行(0.00秒)

推荐答案

正如ypercube在评论中所述,并且您已经确认,触发器是这里的罪魁祸首!

As ypercube has stated in the comments, and you have confirmed, triggers are the culprit here!

这篇关于没有子查询的UPDATE引发错误:子查询返回多于1行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆