#1062 - 键 'PRIMARY' 的重复条目 '19'

Posted

技术标签:

【中文标题】#1062 - 键 \'PRIMARY\' 的重复条目 \'19\'【英文标题】:#1062 - Duplicate entry '19' for key 'PRIMARY'#1062 - 键 'PRIMARY' 的重复条目 '19' 【发布时间】:2019-07-21 14:38:42 【问题描述】:

我在 mysql 5.5.24 版本中有下表

CREATE TABLE IF NOT EXISTS `bookings` (
`booking_id` int(11) NOT NULL ,
  `class_id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=latin1;



INSERT INTO `bookings` (`booking_id`, `class_id`, `user_id`) VALUES
(19, 3, 5),
(21, 6, 5);



CREATE TABLE IF NOT EXISTS `users` (
`user_id` int(11) NOT NULL,
  `username` varchar(20) NOT NULL,
  `firstname` varchar(20) NOT NULL,
  `lastname` varchar(20) NOT NULL,
  `email` varchar(30) NOT NULL,
  `password` varchar(255) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;


INSERT INTO `users` (`user_id`, `username`, `firstname`, `lastname`, `email`, `password`) VALUES
(4, 'another', 'Anne', 'Other', 'another@gmail.com', '1234'),
(5, 'rbirney', 'Rosanne', 'Birney', 'rosanne.birney@gmail.com', '1111');


ALTER TABLE `bookings`
 ADD PRIMARY KEY (`booking_id`), ADD KEY `class_id` (`class_id`,`user_id`), ADD KEY `user_id` (`user_id`);



ALTER TABLE `classes`
 ADD PRIMARY KEY (`class_id`);


ALTER TABLE `users`
 ADD PRIMARY KEY (`user_id`);


ALTER TABLE `bookings`
MODIFY `booking_id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=22;


ALTER TABLE `classes`
MODIFY `class_id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=11;

ALTER TABLE `users`
MODIFY `user_id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=6;


ALTER TABLE `bookings`
ADD CONSTRAINT `fkBookingClass` FOREIGN KEY (`class_id`) REFERENCES `classes` (`class_id`),
ADD CONSTRAINT `fkBookingUser` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`);

我收到以下消息

#1062 - 键“PRIMARY”的重复条目“19”

有人有什么想法吗?

【问题讨论】:

我的猜测是,作为调试过程的一部分,您运行了两次脚本并且没有清理中间的数据,因此您创建了两条 booking_id 为 19 的记录。 【参考方案1】:

在 SQL 中,不允许对主键使用相同的值两次。 (值 = 19) 主键始终是唯一的。

【讨论】:

它比这更笼统。 SQL 标准将主键定义为唯一且不为空。其他数据库实现具有相同的约束。

以上是关于#1062 - 键 'PRIMARY' 的重复条目 '19'的主要内容,如果未能解决你的问题,请参考以下文章

[23000][1062] 键 'PRIMARY' 的重复条目 '0'

错误代码:1062。键“PRIMARY”的重复条目“1”

如何修复完整性约束违规:1062 键“PRIMARY:Laravel Pivot Table”的重复条目“1-1”

错误代码:1062。重复条目 'PRIMARY'

(1062,“重复输入'0'用于键'PRIMARY'”)

Laravel:完整性约束违规:1062重复条目'jon@doe.com'键'users_email_unique'