gpt4 book ai didi

php - 尽管没有重复项,但在 mySQL/phpMyAdmin 中收到 #1062 重复错误

转载 作者:太空宇宙 更新时间:2023-11-03 12:33:58 25 4
gpt4 key购买 nike

我目前有一个名为 Spreadsheet 的数据库,其中包含 2291 行,每行有 6 列。

我还有一个 .csv 文件,其中包含 1000 多个具有相同 6 列的行,尽管其中三个默认设置为 NULL(与我数据库中的某些数据相同,这意味着,有些也默认设置为 NULL)。我试图将它们导入(不是 replace)到现有数据库中。

第一列是主键,我知道.csv 和数据库都没有重复的主键。主键看起来像这样:0015000000b0Y2u

我的问题是:如何将这 1000 多行(它们本身带有唯一的 主键)导入到预先存在的 2291 行中,而不会出现 #1062 错误?

SQL query:

INSERT INTO `Spreadsheet` ( `accountID` , `accountName` , `website` , `rating` , `imageURL` , `comments` , `category` )
VALUES (

'0015000000b0Y3z', 'Kittredge and Associates Inc', 'kittredgeandassociates.com', NULL , 'kittredgeandassociates.com.jpg', NULL , NULL
)
MySQL said:

#1062 - Duplicate entry '0015000000b0Y3z' for key 'PRIMARY'

上面附上的是我一直收到的 #1062 错误,尽管我 100% 确定我没有 PRIMARY 的重复 key 。

我不想让 mySQL 自动递增,因为我已经调查过了,这不是我正在寻找的解决方案。

我已经尝试更改重复输入违规者 key ,但无济于事,同样的错误。有人可以帮我吗?

最佳答案

我怀疑问题是您的主键是一个不区分大小写排序规则的字符列(例如 latin1_swedish_ci)。如果是这样,小写字母和大写字母将被视为“相等”,这将导致重复。

这是一个演示。注意 collat​​ion_name 值的不同:

CREATE TABLE t3 (mycol VARCHAR(4) COLLATE latin1_swedish_ci PRIMARY KEY );
INSERT INTO t3 VALUES ('A'),('a');

-- Error Code: 1062
-- Duplicate entry 'a' for key 'PRIMARY'

CREATE TABLE t4 (mycol VARCHAR(4) COLLATE latin1_bin PRIMARY KEY );
INSERT INTO t4 VALUES ('A'),('a');

-- 2 row(s) affected

如果您需要 MySQL 将大写字母和小写字母视为不相等,那么您需要为该列指定区分大小写或二进制排序规则,而不是不区分大小写的排序规则。

(注意:MySQL 命名排序规则不区分大小写,排序规则名称末尾带有 _ci,例如 latin1_swedish_ci。)

如果列当前是 latin1 字符集和 latin1_swedish_ci 排序规则,您可能希望将列上的排序规则更改为 latin1_general_cslatin1_bin.

例如

ALTER TABLE t3 CHANGE mycol mycol VARCHAR(4) COLLATE latin1_general_cs ;

http://dev.mysql.com/doc/refman/5.5/en/case-sensitivity.html

http://dev.mysql.com/doc/refman/5.5/en/adding-collation.html

关于php - 尽管没有重复项,但在 mySQL/phpMyAdmin 中收到 #1062 重复错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14128409/

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