mysql - 验证另一个表中记录的记录数据
问题描述
我有 2 个表:Employee 和 Regions。每个员工可以分配到一个区域,每个区域可以有多个员工。但是,我只希望输入到“区域”的员工记录中的数据是区域表中存在的数据。我该怎么做呢?
地区列表:东北、东南、中部、西北、西南
使用 MySQL、MySQL Workbench 和 Amazon 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<>在这里摆弄
推荐阅读
- go - Golang 保持活力
- javascript - 正则表达式接受从 0 到 168 的所有小数,后跟 N 或 S
- mysql - 在mysql中使用if和else语句结果作为变量
- c++ - 使用 exipg 实用程序生成的 staticEXIOptions.c
- vpn - 如何在连接到 VPN 之前更改 IP
- powershell - 如何使用 cmd/batchscript 在 gpedit.msc 中编辑某些内容
- oracle - 尝试在交互式报告中添加列时出现错误 ORA-00904
- reactjs - 如何在传单地理搜索中使用以 1 为界的视图框?
- c# - 在 Azure Function 上获取数据时,HttpClient.GetAsync() 会出现 AggregateException
- sql - 计算合并到 PostgreSQL 中单个列的特定“日期”的累积总和