SQL Server约束以允许“两个唯一”值

查尔斯·卡瓦坎特

我有一张这样的桌子:

id   fk_id
1    1
2    1        
3    2        
4    3        
5    3

字段fk_id引用了另一个表,我想创建一个约束以允许每个fk_id最多插入两个。

我想防止这种情况:

id   fk_id
1    1
2    1        
3    1    <-- FAIL
4    3        
5    3

这是“一对多(但最多2个)”或“一对一(或两个)”的关系-我不知道该如何命名。

我可以使用MS SQL Server执行此操作吗?也许检查约束?

解决方案:

-- function to check if there are more then two rows
CREATE FUNCTION [dbo].[CheckMaxTwoForeignKeys](@check_id int)
RETURNS bit
AS
BEGIN

    DECLARE @result bit
    DECLARE @count int

    SELECT @count = COUNT(*) FROM mytable WHERE fk_id = @check_id 

    IF @count <= 2
        SET @result = 1
    ELSE
        SET @result = 0

    RETURN @result

END

-- create the constraint
ALTER TABLE mytable 
ADD CONSTRAINT CK_MaxTwoFK CHECK ( ([dbo].[CheckMaxTwoForeignKeys]([fk_id])=1) )
爱德华·乌塔

您应该创建一个调用函数的检查约束。如果当前值(正在检查的当前值)的值小于或等于2,则函数返回1。

检查约束应该类似于check(dbo.FunctionCheckValidityOfValue = 1)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL唯一约束,每个用户最多两个条目

来自分类Dev

在一个SQL查询中合并两个表,并使日期值唯一

来自分类Dev

SQL Server 2008:与列无关的值的唯一约束

来自分类Dev

如何从sql中的两个表中获取唯一值?

来自分类Dev

两个唯一列之间的SQL Server Join性能较差

来自分类Dev

从SQL Server中的两个表中获取唯一结果集

来自分类Dev

SQL SERVER:唯一约束说明

来自分类Dev

如何在phpMyAdmin -sql中的两个表的主键中使用唯一值?(在php中使用)

来自分类Dev

SQL Server:来自两个或多个表的值

来自分类Dev

SQL组两个值在同一行

来自分类Dev

SQL列表中的两个值之一

来自分类Dev

如何从同一SQL中的两个不同表中获取两个值

来自分类Dev

将两个SQL Server列与一个值进行比较,然后在第三列中插入输出

来自分类Dev

sql比较同一张表中的两个唯一行

来自分类Dev

sql server:唯一约束生成唯一键和唯一索引

来自分类Dev

sql server:唯一约束生成唯一键和唯一索引

来自分类Dev

sql server:唯一约束生成唯一键和唯一索引

来自分类Dev

SQL Oracle约束值在多列中是唯一的

来自分类Dev

根据SQL中的值添加唯一约束

来自分类Dev

T-SQL约束,以检查值是0还是唯一

来自分类Dev

SQL:获取两个日期之间的唯一数据

来自分类Dev

SQL:获取两个日期之间的唯一数据

来自分类Dev

SQL:在具有非唯一特征ID的两个表之间查找差异?

来自分类Dev

Unicode字符上的SQL Server唯一约束问题

来自分类Dev

SQL Server中的Unicode唯一约束

来自分类Dev

重复插入和唯一约束SQL Server 2008

来自分类Dev

如何在SQL Server中创建唯一的约束?

来自分类Dev

重复插入和唯一约束SQL Server 2008

来自分类Dev

两个 SQL 表中的任何一个都有一个值

Related 相关文章

  1. 1

    SQL唯一约束,每个用户最多两个条目

  2. 2

    在一个SQL查询中合并两个表,并使日期值唯一

  3. 3

    SQL Server 2008:与列无关的值的唯一约束

  4. 4

    如何从sql中的两个表中获取唯一值?

  5. 5

    两个唯一列之间的SQL Server Join性能较差

  6. 6

    从SQL Server中的两个表中获取唯一结果集

  7. 7

    SQL SERVER:唯一约束说明

  8. 8

    如何在phpMyAdmin -sql中的两个表的主键中使用唯一值?(在php中使用)

  9. 9

    SQL Server:来自两个或多个表的值

  10. 10

    SQL组两个值在同一行

  11. 11

    SQL列表中的两个值之一

  12. 12

    如何从同一SQL中的两个不同表中获取两个值

  13. 13

    将两个SQL Server列与一个值进行比较,然后在第三列中插入输出

  14. 14

    sql比较同一张表中的两个唯一行

  15. 15

    sql server:唯一约束生成唯一键和唯一索引

  16. 16

    sql server:唯一约束生成唯一键和唯一索引

  17. 17

    sql server:唯一约束生成唯一键和唯一索引

  18. 18

    SQL Oracle约束值在多列中是唯一的

  19. 19

    根据SQL中的值添加唯一约束

  20. 20

    T-SQL约束,以检查值是0还是唯一

  21. 21

    SQL:获取两个日期之间的唯一数据

  22. 22

    SQL:获取两个日期之间的唯一数据

  23. 23

    SQL:在具有非唯一特征ID的两个表之间查找差异?

  24. 24

    Unicode字符上的SQL Server唯一约束问题

  25. 25

    SQL Server中的Unicode唯一约束

  26. 26

    重复插入和唯一约束SQL Server 2008

  27. 27

    如何在SQL Server中创建唯一的约束?

  28. 28

    重复插入和唯一约束SQL Server 2008

  29. 29

    两个 SQL 表中的任何一个都有一个值

热门标签

归档