Sai*_*ali 5 sql relational-algebra relational-database unique-constraint functional-dependencies
假设我们有一张表:
CREATE TABLE Jobs
(
JobID INT PRIMARY KEY ,
AssignedUser VARCHAR(10) ,
Zone VARCHAR(10)
)
Run Code Online (Sandbox Code Playgroud)
我们需要强制执行的约束是这样的:确保没有用户在多个区域中分配作业,即存在功能依赖性AssignedUser => Zone。
如何在 SQL 中强制执行此操作?不幸的是,这是一个遗留表,我们无法更改其结构,但我们可以创建约束来强制完整性。
像下面这样的东西应该有效。您可能需要添加一个 where 子句,Zone IS NULL根据所需的语义排除。
CREATE VIEW V
WITH SCHEMABINDING
AS
SELECT AssignedUser,
Zone,
COUNT_BIG(*) AS C
FROM dbo.Jobs
GROUP BY AssignedUser,
Zone
GO
CREATE UNIQUE CLUSTERED INDEX IX
ON V(AssignedUser)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1889 次 |
| 最近记录: |