如何在不使用更新功能的情况下添加列后在列中插入新数据。例如“alter table Employee add column Gender varchar(1) after Birthdate然后我在使用这个语句时出错了insert into Employee(ENumber,EmpName,Birthdate,Address,Salary,DNumber,Gender)
-> values
-> ('E001','GSInocencio','1988-01-15','Munoz',18000,'D005','F'),
它给了我错误Duplicate entry 'E001' for key 'PRIMARY'
MariaDB [Employees_Valdez]>
1 回答
1
消息非常清楚:您已经有一个具有该 ENumber 值的员工。
您UNIQUE对该列有一个约束,它是 a PRIMARY KEY,所以要么选择不同的值,要么使用不同的主键。
需要注意的一点是 MySQL 并不能非常有效地使用复杂的字符串主键,它们对于关联数据来说也是一个真正的麻烦,因为它们太大了。通常最好包含一个标准id INT AUTO_INCREMENT PRIMARY KEY列,然后将ENumber其作为次要UNIQUE约束。
然后,您可以使用 4 字节id值或 8 字节来关联数据,如果BIGINT您担心可能有 20 亿员工。
于 2019-12-05T20:35:58.067 回答