如何在触发函数中获取所有列名及其值,因为我需要在插入表之前验证所有列值。我尝试了下面的代码。如果我们知道列名意味着我们可以通过使用NEW
对象轻松获取值触发功能为NEW.myColumnName
。但是在这里我需要动态获取列名...
CREATE FUNCTION insert_update_validate() RETURNS TRIGGER AS $$
DECLARE
BEGIN
FOR i IN 0..(TG_ARGV-1) LOOP
IF TG_ARGV[i] IS NULL THEN
RAISE EXCEPTION 'cannot have null VALUE', NEW.TG_ARGV[i];
END LOOP;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;