MySQL“子查询返回超过1行错误”

MySQL“子查询返回超过1行错误”,mysql,runtime-error,Mysql,Runtime Error,我已经运行了200多次以下查询,没有出现错误: INSERT INTO tempAbsenceClientUpload SELECT FirstName, LastName, UserID, UserIsActive, Email, TopClient, ClientGroup, isUpdated, MainProcessID, rownumber FROM temporaryAbsClientTable 从一张桌子到另一张桌子。 但是,我现在得到以下错误消息:子查询返回多行错误 有人能帮我

我已经运行了200多次以下查询,没有出现错误:

INSERT INTO tempAbsenceClientUpload SELECT FirstName, LastName, UserID, UserIsActive, Email, TopClient, ClientGroup, isUpdated, MainProcessID, rownumber FROM temporaryAbsClientTable
从一张桌子到另一张桌子。 但是,我现在得到以下错误消息:子查询返回多行错误 有人能帮我理解为什么吗

我真的不想要其他代码建议,只是它发生的原因


谢谢。

第二张表中可能有重复的。 在这种情况下,您可以这样做来消除它们:首先创建表的副本

ALTER IGNORE TABLE tableName ADD UNIQUE KEY keyName (`columnName`);
或检查是否存在重复项:

select columnNameWithDuplicates, count(*) from tableName group by (columnNameWithDuplicates) having count(*)>1;

我认为您缺少一个WHERE子句,该子句导致此错误

目标表上有一个“on insert”触发器。输入的数据在表达式中被引用到第三个表中,该表达式期望生成两个结果

因此,“子程序”连接到目标表触发器中的一个函数,该触发器由于插入而触发


谢谢大家的意见。

这不是全部查询?您确定错误来自上述查询吗?因为即使SELECT查询返回多条记录,它也会插入多条记录。但不会给出错误。整个查询是:1242-子查询返回的值大于1row@IainFifer-但上述查询中没有子查询。insert into select from语句是一个查询,此处没有子查询。整个陈述是否与书面陈述完全一致?