mysql - 由于引用同一个表而受到外键的插入约束

标签 mysql sql

我有一个表employee,它以ssn作为主键,另一个supr_ssn属性是引用employee表本身的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
)

最佳答案

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

关于mysql - 由于引用同一个表而受到外键的插入约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20147853/

相关文章:

mysql : Return rows which matches the value in array

sql - 获取Oracle表的列名、数据类型、大小和注释

mysql - SELECT/LOCATE 查询输出不正确的结果

mysql - 使用用户名而不是 ID 从 2 个表中检索数据

mysql - MySQL 中的 SQL 子查询

mysql 选择 ids 对的最后一个条目

php - MYSQL 中的乘法、除法和加法

php - 提交表单正在创建 MySQL 记录和空白记录

mysql - 查找行号,加 1,然后替换字符串

mysql - 关于MySQL按日期筛选数据的问题