PostgreSQL 1到很多触发程序

时间:2014-12-01 18:57:55

标签: sql postgresql

我在PostgreSQL中写了这个查询:

CREATE OR REPLACE FUNCTION pippo() RETURNS TRIGGER AS $$
BEGIN
  CHECK (NOT EXISTS (SELECT * FROM padre WHERE cod_fis NOT IN (SELECT padre FROM paternita)));
END;
$$ LANGUAGE plpgsql;

它返回:

  

CHECK或其附近的语法错误。

我编写了这段代码,因为我必须在两个表之间实现1..n链接。

1 个答案:

答案 0 :(得分:1)

您无法在此处使用CHECK。 CHECK用于表和列约束。

另外两个注意事项:

  • 如果这应该是一个语句级约束触发器,我猜你实际上正在寻找IF ... THEN RAISE EXCEPTION 'message'; END IF;
    (如果没有,您可能希望扩展并澄清您正在尝试做的事情。)
  • 该函数应返回NEW,OLD或NULL。