MST

星途 面试题库

面试题:MySQL外键约束中等难度面试题

在MySQL中,创建一个包含外键约束的表结构,主表名为`departments`,有`department_id`(主键,自增)和`department_name`字段;从表名为`employees`,有`employee_id`(主键,自增)、`employee_name`和一个指向`departments`表`department_id`的外键字段`department_id`,请写出对应的SQL语句。并且说明如果在插入`employees`表数据时,指定的`department_id`在`departments`表中不存在会发生什么?
30.4万 热度难度
数据库MySQL

知识考点

AI 面试

面试题答案

一键面试
  1. 创建departments表的SQL语句:
CREATE TABLE departments (
    department_id INT AUTO_INCREMENT PRIMARY KEY,
    department_name VARCHAR(255)
);
  1. 创建employees表并添加外键约束的SQL语句:
CREATE TABLE employees (
    employee_id INT AUTO_INCREMENT PRIMARY KEY,
    employee_name VARCHAR(255),
    department_id INT,
    FOREIGN KEY (department_id) REFERENCES departments(department_id)
);
  1. 当在插入employees表数据时,如果指定的department_iddepartments表中不存在,会出现以下情况:
    • 默认情况下,MySQL会拒绝该插入操作,并抛出一个外键约束冲突的错误,插入的数据不会被成功插入到employees表中。这是为了保证数据的一致性,确保employees表中的department_id值在departments表中有对应的记录。