sql - 强制表之间的约束

标签 sql

如何建立约束,其中一列(不是主键)必须与另一表的列具有相同的值。我不太确定如何表达它,所以这里有一个例子:

例如: 我有三个表,EmployeeDirectorDivisionDepartment

表的结构如下:

员工

  • 身份证
  • 姓名
  • 导演 ID (FK)
  • 部门 ID (FK)

导演

  • 身份证
  • 姓名
  • 部门 ID (FK)

部门

  • 身份证
  • 姓名
  • 部门 ID (FK)

部门

  • 身份证
  • 姓名

员工和董事都有部门,每个部门有一个部门,但他们的部门必须相同。有办法强制执行吗? (希望不必求助于触发器)

最佳答案

创建具有适当授予权限并且不允许用户直接插入表的存储过程。使用存储过程作为数据库的接口(interface),并在插入之前检查其中所需的条件。

关于sql - 强制表之间的约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3938736/

相关文章:

sql - 你如何清理 wordpress 中的输入

sql - 表变量行限制?

sql - 使用 `newid()` 将单行子查询与列交叉连接会导致每一行都有不同的 GUID

sql - 在sql中的select查询中有条件地自动将列值增加1

SQL通过连续递增序列拆分数据,然后按模式对每个数据进行子集化

java - 跨 DB2 和 Oracle 数据库连接信息最佳实践

php - 在一个 SQL 查询 (JOIN) 中获取一个普通表并从另一个表计数

sql - 如何从另一个查询返回的表名中执行选择?

mysql - SQL查询条件,用于根据条件获取用户的答案

MySQL:使用其他表修复数据