MySQL是一款常用的关系型数据库,为了保证数据的完整性和一致性,我们在建表时需要设置外键。
首先,我们需要在建表前创建出所需的表,建表语句如下:
CREATE TABLE department (id INT(11) NOT NULL AUTO_INCREMENT,name VARCHAR(50) NOT NULL,PRIMARY KEY (id));CREATE TABLE employee(id INT(11) NOT NULL AUTO_INCREMENT,name VARCHAR(50) NOT NULL,department_id INT(11),PRIMARY KEY (id),CONSTRAINT fk_employee_department FOREIGN KEY (department_id) REFERENCES department(id));
建表语句中,我们创建了两个表,一个是部门表(department),另一个是员工表(employee)。
在员工表中,我们使用了 FOREIGN KEY 关键字和 REFERENCES 子句来创建外键。其中,fk_employee_department 是外键的名字,department_id 是员工表中的外键列,department(id)是指引用部门表中的id列。
接着,我们可以通过以下语句查看已经设置的外键:
SHOW CREATE TABLE employee;
执行以上命令后,可以看到类似如下的输出,其中 Foreign key 表示设置的外键:
CREATE TABLE `employee` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(50) NOT NULL,`department_id` int(11) DEFAULT NULL,PRIMARY KEY (`id`),KEY `fk_employee_department` (`department_id`),CONSTRAINT `fk_employee_department` FOREIGN KEY (`department_id`) REFERENCES `department` (`id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
如果我们需要删除外键,可以使用 ALTER TABLE 语句,如下所示:
ALTER TABLE employee DROP FOREIGN KEY fk_employee_department;
以上就是设置 MySQL 建表后设置外键的相关内容。