PostgreSQL:检查属性是否在表中

时间:2011-09-15 03:01:36

标签: postgresql triggers

我正在编写一些触发器来检查另一个表中是否存在新创建元组的arrtibute。检查这个的最佳方法是什么?

IF (SELECT * FROM TABLEB where NEW.Attribute = Attribute) = NULL THEN
return NULL
END IF

有更好的方法吗?并且Select是否返回任何= NULL或空集?

1 个答案:

答案 0 :(得分:1)

使用IF EXISTS (SELECT * FROM TABLEB where NEW.Attribute = Attribute)

空行集与NULL不同,NULL表示行的空单元格。只有在查询只选择了一行时,您的语法才有效,在这种情况下,PostgreSQL将允许对返回的顶部单元格使用比较运算符,如果没有返回,则计为{{1}}。