# 1062 - Дублирующая запись '19' для ключа 'ПЕРВИЧНЫЙ' - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть следующая таблица в версии 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 - Дублирующая запись '19' для ключа 'PRIMARY'

у кого-нибудь есть идеи?

1 Ответ

0 голосов
/ 27 февраля 2019

В SQL нельзя использовать одно и то же значение для первичного ключа дважды.(значение = 19) Первичные ключи всегда уникальны.

...