gpt4 book ai didi

sql-server-2005 - 仅具有一个值的检查约束 SQL Server 2005

转载 作者:行者123 更新时间:2023-12-01 18:37:20 25 4
gpt4 key购买 nike

我有一个包含这些字段的表:

User_id, User_type, User_address

是否可以添加一个约束,其中每个 user_id 的 user_type = 'xyz' 只能存在一条记录?我们可以有任意多个 user_type = 'abc',但只有一个 'xyz'。

我知道这不是最好的设计,但它是目前的设计,我需要稍微锁定它。

谢谢

最佳答案

您需要使用触发器...

CREATE TRIGGER yourTriggerName ON YourTableName
AFTER INSERT,UPDATE
AS

IF EXISTS (SELECT
y.User_id --,COUNT(y.User_Type)
FROM YourTableName y
INNER JOIN inserted i ON y.User_id=i.User_id
WHERE y.User_Type='xyz'
GROUP BY y.User_id
HAVING COUNT(y.User_Type)>1
)
BEGIN

ROLLBACK

END
go

另外,请确保 User_id+User_type 上有索引

关于sql-server-2005 - 仅具有一个值的检查约束 SQL Server 2005,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1466271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com