我正在编写一些触发器来检查另一个表中是否存在新创建元组的arrtibute。检查这个的最佳方法是什么?
IF (SELECT * FROM TABLEB where NEW.Attribute = Attribute) = NULL THEN
return NULL
END IF
有更好的方法吗?并且Select是否返回任何= NULL或空集?
答案 0 :(得分:1)
使用IF EXISTS (SELECT * FROM TABLEB where NEW.Attribute = Attribute)
。
空行集与NULL
不同,NULL
表示行的空单元格。只有在查询只选择了一行时,您的语法才有效,在这种情况下,PostgreSQL将允许对返回的顶部单元格使用比较运算符,如果没有返回,则计为{{1}}。