gpt4 book ai didi

sql - 将另一个表中的数据放入检查约束

转载 作者:行者123 更新时间:2023-12-04 14:46:41 25 4
gpt4 key购买 nike

我有一个表说 table1 和一个列说 checkColumn,

现在我想对字段 checkColumn 设置一个检查约束,它只允许另一个表中存在的数据,例如在某些条件下,表 2,

我这样试过,

ALTER TABLE table1
ADD CHECK (checkColumn=(select field1 from table2 where field2='ABC') ) //the select is not scalar

但是当我意识到它不允许在检查条件中使用子查询字符串时,我搜索了一下并阅读了我应该使用外键,或触发器或其他东西,但并没有真正理解如何在此处实现这些示例,所以将此作为一个单独的问题发布。

最佳答案

不幸的是,您不能将子查询插入到检查约束的上下文中。但在这里我想给出建议,您可以使用任何触发器或函数,您可以使用
检查数据依赖性的外键约束
我想分享一个带有函数的例子。
例如

CREATE FUNCTION fn_Check_Rollnumber (
@Rollnumber INT
)
RETURNS VARCHAR(10)
AS
BEGIN
IF EXISTS (SELECT Rollnumber FROM Table_Student WHERE Rollnumber = @Rollnumber)
return 'True'
return 'False'
END

现在您可以在检查上下文中使用此功能,例如,
ALTER TABLE Table_Fees 
WITH CHECK ADD CONSTRAINT CK_RollCheck
CHECK (fn_Check_Rollnumber(Rollnumber) = 'True')

关于sql - 将另一个表中的数据放入检查约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16100700/

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