当前位置: 首页 > 面试题库 >

错误1062(23000):密钥'PRIMARY'的重复条目'2147483647'

伯庆
2023-03-14
问题内容

首先,我已经看到许多其他这样的帖子,但是答案不适用于我的特殊情况。以防万一我几个月才学习SQL,对此我没有太多的了解。

这里有张桌子:

CREATE TABLE passenger_details
   (
    bank_card INT(20) NOT NULL AUTO_INCREMENT,
    email VARCHAR(20), 
    mobile INT(15) NOT NULL,
    p_id INT NOT NULL,    
    PRIMARY KEY (bank_card),
    FOREIGN KEY (p_id) REFERENCES passenger(p_id) 
    );

INSERT INTO passenger_details 
VALUES (0123012301230123,'blah_@hotmail.com',0872863492,1234);

select*from passenger_details;
+------------+--------------------+-----------+------+
| bank_card  | email              | mobile    | p_id |
+------------+--------------------+-----------+------+
| 2147483647 | blah_@hotmail.com  | 872863492 | 1234 |
+------------+--------------------+-----------+------+
1 row in set (0.00 sec)

如我们所见,先前的值在表中出错了。应该是16个数字,而不仅仅是10个,实际上是不同的数字。
当我尝试插入新值时:

INSERT INTO passenger_details 
VALUES (1234258431681842,'blah@icloud.com',0895764829,123548);
ERROR 1062 (23000): Duplicate entry '2147483647' for key 'PRIMARY'

如果bank_card是AUTO_INCREMENT,为什么会有错误?我可以将PK更改到另一个地方吗?

非常感谢任何帮助


问题答案:

INT的最大符号值为2147483647。大于该数字的任何数字都会被截断为该值。您需要做的是将该列更改为a
varchar(20),该列最多可以包含20个字符的字符串,因为银行卡号是字符串,而不是实际的数字(您不对进行数学运算)。您还应删除AUTO_INCREMENT该值,因为这不是您要递增的值。



 类似资料:
  • 问题内容: 我正在尝试将大量用户列表插入MySQL数据库,但是每次尝试都出现错误: 之所以这样,是因为第二列在很多条目上都是空白的,因此在第二列中插入一个空白条目后,就不会再添加另一个了。但是,当我昨天添加了大多数列表时,即使昨天添加的很多条目在第2列中也有一个空白单元格,我也没有一次收到此错误。这是怎么回事? 这是插入1个条目的sql代码。其余的遵循相同的格式: 问题答案: 除了Sabeen的答

  • 问题内容: 所以我的MySQL数据库表现得有些奇怪。这是我的桌子: 当我尝试插入表时出现此#1062错误。因此,我进一步研究了它,并意识到当我尝试在名称和共享值相同的表中插入值时,它将返回#1062错误。例如,如果我插入: 它将返回错误。但是,如果我将共享数更改为6,它将运行正常。是因为我的专栏之一可能是唯一的,还是仅与mysql有关? 问题答案: 您需要删除作为OR

  • 问题内容: 尝试以下操作时,我在此错误消息上遇到了问题: 错误代码:1062。键“ PRIMARY”的条目“ 1”重复 我没有auto_increment数据,请帮助我! 这是与表格相关的, UFFICIO-INFORMAZIONI 插入 问题答案: 该 主 为什么已经产生错误的原因是因为已经有一个现有值的列在其中将其定义为( 值是唯一 在要插入的表格)。 为什么不将列设置为? 当您插入记录时,您

  • 问题内容: 尝试在数据库中插入值时,mysql表出现问题。 我遵循了本教程 http://sqllessons.com/categories.html 并像教程中的表格一样创建表格 表格代码 错误的 SQL查询:编辑编辑 帮我解决这个问题。 问题答案: 声明要自动递增的值,不要插入它。所以: 接着:

  • 问题内容: 我在MySQL 5.5.24中有下表 它具有大量数据,并且其他两个表具有和并具有多对一关系。 现在,我需要更改结构并在表中引入单独的主键,同时仍保留现有的关系和数据。为此,我执行了以下查询: 不幸的是,我的第二次查询失败,并出现以下错误: 1062-键“ PRIMARY”的条目“ 0”重复 有人可以指出这个问题吗?我想问题是现有的关系,但是我不想丢失具有数千行的现有关系或数据。有什么方

  • 问题内容: 因此,当尝试向字段添加自动增量时,它会出现#1062-键1的重复条目‘1’。我尝试删除主键并重新添加它,效果很好(我认为如果有重复项,那不会吗?) 但是,当我尝试向字段添加自动增量时,会引发错误。它为我提供了一个浏览选项,该选项运行以下SQL: 但是,这将返回一个空结果集。表明没有重复项。因此,如果没有重复项,为什么不能添加自动增量? 问题答案: 您是否有任何具有值的行或该列的行?可能