我正在学习SQL并且有一些表格如下:
Person (id*, name)
Customer(id*, is_active, ...)
Employee(id*, department_id, ...)
(*表示主键,在Customer和Employee的情况下,PK和FK都是人员)
Customer和Employee都是Person的类型,我想确保当记录插入Person时,记录也必须插入到EITHER Customer或Employee中,但不能同时插入。在此示例的限制范围内,人员不能同时是员工和客户。
我被告知触发器对强制执行此约束很有用。有人可以用这个简单的例子解释一下触发器的用法吗?
答案 0 :(得分:3)
您可以使用INSTEAD OF触发器。您的问题已在此MSDN文章(Designing INSTEAD OF Triggers)
中完整涵盖
答案 1 :(得分:2)
根据您的DBMS支持的内容和其他因素,您可以:
答案 2 :(得分:1)
如果要确保某人是Customer或Employee,您可以在Person表中创建一个名为“Type”的列,它可以具有值“Customer”和“Employee”或“1”和“2”。 然后按照上面评论的建议将相关信息插入Customer或Employee表中。