首页 > 解决方案 > 验证另一个表中记录的记录数据

问题描述

我有 2 个表:Employee 和 Regions。每个员工可以分配到一个区域,每个区域可以有多个员工。但是,我只希望输入到“区域”的员工记录中的数据是区域表中存在的数据。我该怎么做呢?

地区列表:东北、东南、中部、西北、西南

使用 MySQL、MySQL Workbench 和 Amazon RDS

标签: mysqldatabasemysql-workbenchamazon-rds

解决方案


您将外键约束添加到区域表

CREATE tABLE Region (region  VARCHAR(55) Primary KEY  NOT NULL)
INSERT INTO Region VALUES ('Northeast'), ('Southeast'), ('Central'), ('Northwest'), ('Southwest')
CREATE tABLE employee (id bigint Primary KEY auto_increment
, refregion  VARCHAR(55) NOT NULL
, 
    CONSTRAINT FK_RmploxxRegion FOREIGN KEY (refregion)
    REFERENCES Region(region))
INSERT INTO employee VALUES (NULL,'Northpole')
无法添加或更新子行:外键约束失败(`db_1115468314`.`employee`, CONSTRAINT `FK_RmploxxRegion` FOREIGN KEY (`refregion`) REFERENCES `Region` (`region`))
INSERT INTO employee VALUES (NULL,'Northeast')
SELECT * FROM employee
编号 | 参考区
-: | :--------
 2 | 东北

db<>在这里摆弄


推荐阅读