Как создать первичный ключ по двум полям в MySQL
Всех с наступающим! Не могу решить простую для знающего и не простую для не знающего задачу. Есть задание :Паспорта Тренировочный SQL код Создайте таблицу passports со следующими полями:
series — символьного типа длиной до 4 символов. NULL запрещен. number — символьного типа длиной до 6 символов. NULL запрещен. user_id — беззнаковый INT. NULL запрещен. date_issue — дата типа DATE Создайте первичный ключ по двум полям: series и number.
Я пишу так:
create table passports (
series varchar (4) not null,
number varchar (6) not null,
user_id int unsigned not null,
date_issue date,
primary key (series, number)
insert into passports (series, number, user_id, date_issue)
values(3206, 147345, 15, '2006-08-12'),
(3216, 147345, 234, '2016-09-23'),
(2405, 147345, 1, '2015-01-07'),
(5411, 1473445, 15, '2008-03-03');
Есть вот такая ошибка:
AssertionError: (MySQLdb._exceptions.DataError) (1406, "Data too long for column 'number' at row 4")
Помогите пожалуйста
Ответы (1 шт):
Ошибка вызвана тем, что вы пытаетесь вставить в 4-ой записи insert-а:
(5411, 1473445, 15, '2008-03-03');
в поле number
значение, которое по длине больше объявленных 6 символов:
number varchar (6) not null,