如何建立约束,其中一列(不是主键)必须与另一表的列具有相同的值。我不太确定如何表达它,所以这里有一个例子:
例如:
我有三个表,Employee
、Director
、Division
和 Department
表的结构如下:
员工
- 身份证
- 姓名
- 导演 ID (FK)
- 部门 ID (FK)
导演
- 身份证
- 姓名
- 部门 ID (FK)
部门
- 身份证
- 姓名
- 部门 ID (FK)
部门
- 身份证
- 姓名
员工和董事都有部门,每个部门有一个部门,但他们的部门必须相同。有办法强制执行吗? (希望不必求助于触发器)
最佳答案
创建具有适当授予权限并且不允许用户直接插入表的存储过程。使用存储过程作为数据库的接口(interface),并在插入之前检查其中所需的条件。
关于sql - 强制表之间的约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3938736/