由于引用相同的表而由外键插入约束

时间:2013-11-22 14:57:02

标签: mysql sql

我有一个表员工,其中 ssn 作为主键,另一个 supr_ssn 属性是引用员工表本身的 ssn 的外键。因此,当插入表格时,我得到外键约束,因为我没有在 ssn 中插入任何值。这是我的表:

create table employee(
    Fname varchar(15) not null,
    Minit char,
    Lname Varchar(15) not null,
    ssn char(9) not null,
    Bdate Date,
    Address varchar(30),
    sex char,
    Salary decimal(10,2),
    super_ssn char(9),
    Dno int not null,
    primary key(ssn),
    foreign key(super_ssn)references employee(ssn),
    foreign key(dno)references department(Dnumber)
)

当我插入表时,使用代码我得到外键约束:

insert into sample.employee(
    Fname, Minit, Lname, ssn, Bdate,
    Address, sex, salary, Dno
)
values(
    'John', 'B', 'Smith', '123456789', 01/09/1965,
    '731 fondren,housten', 'M', 30000, '333445555', 5
)

1 个答案:

答案 0 :(得分:0)

如果主键值不存在,则无法为外键输入值。 因此,输入主键值然后尝试相应地更新外键值。