Как создать первичный ключ по двум полям в 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 шт):

Автор решения: Roman Saibullin

Ошибка вызвана тем, что вы пытаетесь вставить в 4-ой записи insert-а:

(5411, 1473445, 15, '2008-03-03');

в поле number значение, которое по длине больше объявленных 6 символов:

number varchar (6) not null,
→ Ссылка