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

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

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

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

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

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

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

name_employee = 'Pavlos Pavlos'
email = '[email protected]'

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

name_employee = 'John John'
email = '[email protected]'

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

name_employee = 'Nick Nick'
email = '[email protected]'

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

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

Но нет другого ряда с name_employee = Nick Nick а также email = [email protected],

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

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

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

0

Решение

Этот запрос

SELECT
name, account_number, dateExp, credit_limit, amount_debt, balance,
'Nick Nick', '250', '[email protected]', 'pass'
FROM companies
WHERE email='[email protected]'

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

.

2

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

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

По вопросам рекламы [email protected]