gpt4 book ai didi

mysql - 如何调试: Subquery returns more than 1 row

转载 作者:行者123 更新时间:2023-11-29 10:10:25 28 4
gpt4 key购买 nike

我正在将 CSV 数据加载到 mysql 中,并将列中的值替换为另一个现有表中的相应值。

我使用子查询来执行此操作,该子查询应该始终返回单个值,但事实证明该表的引用列不唯一。并且引用列上有重复值会使子查询返回多个值,这是可以理解的。

是否有办法告诉 MySql 更能表达加载中的哪一行触发了此错误?或任何调试此问题的方法?

我想在当前表中找到引用具有重复列的行的行,因此我可以手动检查每个重复项,以确保引用第一个表中的正确数据。

示例 SQL

LOAD DATA
LOCAL INFILE 'file.csv'
REPLACE INTO
TABLE `db`.`table`
CHARACTER SET 'utf8'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
#ESCAPED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(
@old_value
)
SET
`column` = (
SELECT new_column from `db`.`other_table`
where old_column = @old_value
);

最佳答案

Is there anyway to tell MySql to be more expressive about which line in the loading faze triggered this error ?

据我所知,没有。

or any way of debugging this issue ?

查看添加到“db.table”的最后一条记录,在数据文件中找到它。导致问题的记录是下一条记录。

但这实际上并不能解决您的问题 - 显然您没有将 db.other_table.old_column 定义为唯一并且您的插入触发器不处理多个记录。

由于我们对您的数据模型一无所知,因此我们无法真正建议您需要修复哪些问题 - 但这里有几个关于如何在 MySQL 数据库中查找重复项的答案。

关于mysql - 如何调试: Subquery returns more than 1 row,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51061768/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com