MySQL Повторяющаяся запись для ключа ‘PRIMARY’, но немного более странная

У меня общая проблема. Я читаю по всему Google, но моя проблема немного более странная.

У меня есть таблица, я использую эти первичные ключи:

ALTER TABLE `companies`
ADD PRIMARY KEY(
`name_employee`,
`email`);

Таким образом, первичный ключ представляет собой сочетание name_employee А ТАКЖЕ email,

Проблема с примерами (я даю только вставки первичного ключа, так как другие не первичны и работают как положено):

Первая вставка в порядке:

name_employee = 'Pavlos Pavlos'
email = 'company_Name@gmail.com'

Вторая вставка ОК:

name_employee = 'John John'
email = 'company_Name@gmail.com'

Третья прошивка BAD:

name_employee = 'Nick Nick'
email = 'company_Name@gmail.com'

Ошибка, которая выскакивает:

Ошибка: INSERT INTO компании (имя, номер_счета, dateExp,
credit_limit, amount_debt, остаток, name_employee, id_employee,
электронная почта, пароль) ВЫБЕРИТЕ имя, account_number, dateExp, credit_limit,
сумма_дебета, баланс, «Ник Ник», «250», «company_Name@gmail.com»,
‘пропустить’ ОТ компаний ГДЕ email=’company_Name@gmail.com ‘
Дублирующая запись ‘Nick Nick-company_Name@gmail.com’ для ключа ‘PRIMARY’

Но нет другого ряда с name_employee = Nick Nick а также email = company_Name@gmail.com,

Что действительно странно, так это то, что он позволяет мне сделать вторую вставку с тем же email но другой name_employee, но это не позволяет мне сделать то же самое для трети и так далее.

Любая помощь, пожалуйста?

РЕДАКТИРОВАТЬ:
Это назначение, и я не могу добавить больше ключей / первичных ключей и т. Д.
Также в одной компании мне нужно много сотрудников, и мы можем предположить, что name_employee отличается для каждого, поэтому я использовал эти первичные ключи.

0

Решение

Этот запрос

SELECT
name, account_number, dateExp, credit_limit, amount_debt, balance,
'Nick Nick', '250', 'company_Name@gmail.com', 'pass'
FROM companies
WHERE email='company_Name@gmail.com'

выбирает строки из таблицы companies где email равняется 'company_Name@gmail.com', Это верно для двух строк ('Pavlos Pavlos' а также 'John John'). Итак, вы пытаетесь вставить 'Nick Nick' дважды. Отсюда и ошибка.

.

2

Другие решения

Других решений пока нет …