首页 >数据库 >mysql教程 >为什么我的 MySQL INSERT ... SELECT 语句会导致'操作数应包含 1 列”?

为什么我的 MySQL INSERT ... SELECT 语句会导致'操作数应包含 1 列”?

DDD
DDD原创
2024-12-04 13:42:12937浏览

Why Does My MySQL INSERT ... SELECT Statement Result in

MySQL 错误:“操作数应包含 1 列”

在 MySQL 中使用 SELECT 子句执行 INSERT 语句时,您可能会遇到错误“操作数应包含 1 列”。当 SELECT 子句返回多列时,会出现此错误,违反了 INSERT 语句的预期格式。

要解决此问题,请遵循带有 SELECT 子句的 INSERT 语句的正确语法:

INSERT INTO MyTable  (PriKey, Description)
       SELECT ForeignKey, Description
       FROM SomeView

在您的特定查询中,删除 SELECT 子句中的括号:

INSERT INTO VOUCHER (VOUCHER_NUMBER, BOOK_ID, DENOMINATION)
SELECT a.number, b.ID, b.DENOMINATION
FROM temp_cheques a, BOOK b
WHERE a.number BETWEEN b.START_NUMBER AND b.START_NUMBER+b.UNITS-1;

此外,错误“SELECT 将检查超过 MAX_JOIN_SIZE 行;如果 SELECT 正常,请检查 WHERE 并使用 SET SQL_BIG_SELECTS=1 或 SET SQL_MAX_JOIN_SIZE=#。”表示交叉引用查询可能会产生较大的结果集。要允许该操作,请在运行 INSERT 查询之前执行以下语句:

SET SQL_BIG_SELECTS = 1

请注意,这可能仍会导致较长的执行时间。

以上是为什么我的 MySQL INSERT ... SELECT 语句会导致'操作数应包含 1 列”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn