【问题标题】:I have an Error Code: 1062. Duplicate entry '1' for key 'department.PRIMARY'我有一个错误代码:1062。键“department.PRIMARY”的重复条目“1”
【发布时间】:2021-12-18 08:42:57
【问题描述】:

我是 mysql 新手,不知道为什么会出错 我被困在这里 外键出错 问题之一是

Employee 和 Project 中的“DepartmentID”字段是引用“部门表”的“Did”字段的外键,当我在部门中插入一个值时,我收到该错误,不知道为什么 ``

`create table Department
 (
did     integer      default 1,
Dname   varchar(50) default 'HR',
location varchar(50) default 'Chicago',
primary key(did)`

);`

`create table Employee(
Eid     integer         default 12,
DepartmentID    integer  default 5,
Ename   varchar(50)     default 'Josh',
Erank   integer         default 2,
Salary  real            default 500000,
primary key(Eid),`
foreign key(DepartmentID) references Department(did)`   

);

 `create table Project`
 (
     Pid integer                default 20,
     DepartmentID  integer   default 9,
     Pname varchar(50)      default 'Sorting',
     budget real            default 5.000,
     StartYear  integer     default 2000,
     primary key(Pid),
     foreign key(DepartmentID) references Department(did)
     );

     insert
     into   Department(Dname)
     values  ('Marketing'),
              ('Human Resources');

【问题讨论】:

    标签: mysql mysql-error-1062


    【解决方案1】:

    必须指定主键值,除非是auto_increment

    insert into Department(did, Dname)
    values (1, 'Marketing'),
           (2, 'Human Resources');
    

    或更改您的表格以使用auto_increment

    create table Department (
    did     integer   not null auto_increment,
    Dname   varchar(50) default 'HR',
    location varchar(50) default 'Chicago',
    primary key(did)
    );
    
    insert into Department(Dname)
    values ('Marketing'),
           ('Human Resources');
    

    【讨论】:

    • 感谢自动增量帮助解决了这个问题。
    猜你喜欢
    • 2013-01-15
    • 1970-01-01
    • 1970-01-01
    • 2014-02-02
    • 1970-01-01
    • 2015-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多