MySQL 键 'PRIMARY' 的重复项,但有点奇怪
MySQL Duplicate entry for key 'PRIMARY' but a bit more weird
我遇到了一个常见问题。我通读了 google,但我的问题有点奇怪。
我有一个 table 我使用这些主键:
ALTER TABLE `companies`
ADD PRIMARY KEY(
`name_employee`,
`email`);
所以主键是 name_employee
AND email
的组合。
例子的问题(我只给出了主键的插入,因为其他的不是主键并且按预期工作):
首次插入成功:
name_employee = 'Pavlos Pavlos'
email = 'company_Name@gmail.com'
第二次插入成功:
name_employee = 'John John'
email = 'company_Name@gmail.com'
第三次插入错误:
name_employee = 'Nick Nick'
email = 'company_Name@gmail.com'
弹出的错误:
Error: INSERT INTO companies (name, account_number, dateExp,
credit_limit, amount_debt, balance, name_employee, id_employee,
email, password) 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'
Duplicate entry 'Nick Nick-company_Name@gmail.com' for key 'PRIMARY'
但是 name_employee = Nick Nick
和 email = company_Name@gmail.com
没有另一行。
真正奇怪的是,它允许我用相同的 email
但不同的 name_employee
进行第二次插入,但它不允许我做同样的事情对于第三个等等插入。
有什么帮助吗?
编辑:
这是一项作业,我无法添加更多 keys/primary 键等。
此外,我在同一家公司需要很多员工,我们可以假设每个人的 name_employee 都是不同的,这就是我使用这些主键的原因。
这个查询
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'
从 table companies
中选择行,其中 email
等于 'company_Name@gmail.com'
。这适用于两行('Pavlos Pavlos'
和 'John John'
)。所以你试图插入 'Nick Nick'
两次。因此错误。
.
我遇到了一个常见问题。我通读了 google,但我的问题有点奇怪。
我有一个 table 我使用这些主键:
ALTER TABLE `companies`
ADD PRIMARY KEY(
`name_employee`,
`email`);
所以主键是 name_employee
AND email
的组合。
例子的问题(我只给出了主键的插入,因为其他的不是主键并且按预期工作):
首次插入成功:
name_employee = 'Pavlos Pavlos'
email = 'company_Name@gmail.com'
第二次插入成功:
name_employee = 'John John'
email = 'company_Name@gmail.com'
第三次插入错误:
name_employee = 'Nick Nick'
email = 'company_Name@gmail.com'
弹出的错误:
Error: INSERT INTO companies (name, account_number, dateExp, credit_limit, amount_debt, balance, name_employee, id_employee, email, password) 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' Duplicate entry 'Nick Nick-company_Name@gmail.com' for key 'PRIMARY'
但是 name_employee = Nick Nick
和 email = company_Name@gmail.com
没有另一行。
真正奇怪的是,它允许我用相同的 email
但不同的 name_employee
进行第二次插入,但它不允许我做同样的事情对于第三个等等插入。
有什么帮助吗?
编辑: 这是一项作业,我无法添加更多 keys/primary 键等。 此外,我在同一家公司需要很多员工,我们可以假设每个人的 name_employee 都是不同的,这就是我使用这些主键的原因。
这个查询
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'
从 table companies
中选择行,其中 email
等于 'company_Name@gmail.com'
。这适用于两行('Pavlos Pavlos'
和 'John John'
)。所以你试图插入 'Nick Nick'
两次。因此错误。
.