gpt4 book ai didi

MYSQL 加载数据时某些行被删除

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

我是 MYSQL 新手,当我将一些数据加载到表中后,某些行被删除,我遇到了问题。例如,假设我们有以下架构

(用户 ID INTEGER,用户兴趣 VARCHAR(200))

我有这样的数据

1|*|Sports
1|*|Gaming
1|*|Eat
2|*|Sports
2|*|Gaming
2|*|Sleep

我像这样执行加载

LOAD DATA LOCAL INFILE 'data.csv' INTO TABLE Users
FIELDS TERMINATED BY '|*|';

但是,具有相同 UserInterests 的行被删除,所以当我执行以下查询时

SELECT * FROM Users;

我明白了

1 EAT
1 Gaming
2 Sleep
1 Sports

但我希望得到类似的东西

1 EAT
1 Gaming
1 Sports
2 Sleep
2 Sports
2 Gaming

有人可以解释一下我哪里做错了吗?

最佳答案

如果您的列 UserInterests 有唯一索引(例如主键),这将是预期的行为。唯一索引将防止您多次拥有相同的数据。通常,您会收到重复键错误,但是当您在 LOAD DATA LOCAL INFILE 中使用 LOCAL 时,您只会收到警告,请参阅 documentation :

LOCAL also affects error handling:

  • With LOAD DATA INFILE, data-interpretation and duplicate-key errors terminate the operation.

  • With LOAD DATA LOCAL INFILE, data-interpretation and duplicate-key errors become warnings and the operation continues because the server has no way to stop transmission of the file in the middle of the operation. For duplicate-key errors, this is the same as if IGNORE is specified. IGNORE is explained further later in this section.

因此请检查并更正您的索引。我假设您当前使用 UserInterests 作为该表中的主键,而您可能需要有一个由两列组成的主键。

关于MYSQL 加载数据时某些行被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42039849/

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