大家好,你能帮我与Mysql问题有关错误1062?[重复]

gmol1639  于 2023-01-08  发布在  Mysql
关注(0)|答案(3)|浏览(188)
    • 此问题在此处已有答案**:

(9个答案)
昨天关门了。
这是我的Mysql表:

CREATE TABLE DIEMHP (
    MaSV VARCHAR (50) PRIMARY KEY,
    MaHP VARCHAR (100) NOT NULL,
    DiemHP INT (10) NOT NULL
    );

我运行了查询,查询成功。之后,我在此表中添加了数据:

INSERT INTO DIEMHP
VALUES  (002, 002,5.9),
    (002, 003,4.5),
        (003, 001,4.3),
        (003, 002,6.7),
        (003, 003,7.3),
        (004, 001,4.0),
        (004, 002,5.2),
        (004, 003,3.5),
        (005, 001,9.8),
        (005, 002,7.9),
        (005, 003,7.5),
        (006, 001,6.1),
        (006, 002,5.6),
        (006, 003,4.0),
        (007, 001,6.2);

我运行查询,但结果显示错误:
错误代码:1062。关键字"PRIMARY"的条目"2"重复
然后,我在谷歌上搜索解决方案,并尝试以下查询:

ALTER TABLE DIEMHP
MODIFY COLUMN MaSV INT NOT NULL AUTO_INCREMENT;

结果是:
错误代码:1062。如上所述,键"PRIMARY"的条目"2"重复

hpxqektj

hpxqektj1#

我认为您需要使用新的主键值更新现有行,或者插入具有唯一主键值的新行。您还可以尝试删除表上的主键约束,但应谨慎操作,因为这可能会导致数据完整性问题。

4xy9mtcn

4xy9mtcn2#

作为主键,MaSV不能有重复值。AUTO_INCREMENT仅表示MaSV列设置为在插入时自动增加。现在,此列上有重复数据,您需要删除重复记录,然后才能插入正确的元组。

2wnc66cl

2wnc66cl3#

您已经将MaSV声明为主键,这意味着它将是唯一的并且不会重复。因此,您应该做的第一件事是删除表中的所有数据。

TRUNCATE TABLE DIEMHP

然后运行

ALTER TABLE DIEMHP MODIFY COLUMN MaSV INT NOT NULL AUTO_INCREMENT;

最后,您需要删除INSERT查询中的第一列,如下所示:

INSERT INTO DIEMHP
VALUES  (002,5.9),
    (003,4.5),
        (001,4.3),
        (002,6.7),
        (003,7.3),
        (001,4.0),
        (002,5.2),
        (003,3.5),
        (001,9.8),
        (002,7.9),
        (003,7.5),
        (001,6.1),
        (002,5.6),
        (003,4.0),
        (001,6.2);

相关问题