微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在postgreSQL中引发错误

CREATE OR REPLACE FUNCTION msgfailerror() RETURNS trigger AS 
' BEGIN 
    IF NEW.noces< new.first_column THEN 
        RAISE EXCEPTION 'cannot have a negative salary'; 
    END IF; 
   return new; 
END' LANGUAGE plpgsql

触发

create trigger msgfail before insert on first for each row 
execute procedure msgfailerror()

给出错误

Syntax error at or near “cannot” LINE 5: RAISE
EXCEPTION ‘cannot have a negative …

对于每个行字段,我几乎有一个验证.我希望触发器在插入完成时检查所有验证,然后一次性提高错误日志.我应该在加薪通知中使用加薪例外吗?

例如:

Insert into first (first_column,noces,dob) values ('4545','75','545')

我正在检查noces是否小于first_column,对于同一行我想检查是否dob> 80并且first_column是整数并且为所有验证引发错误.提前致谢

解决方法

引用是错误的.使用美元报价$$更容易:

CREATE OR REPLACE FUNCTION msgfailerror() 
RETURNS trigger AS 
$$
BEGIN 
  IF NEW.noces< new.first_column THEN 
    RAISE EXCEPTION 'cannot have a negative salary'; 
  END IF; 
  return new; 
END;
$$
LANGUAGE plpgsql;

但另一方面,检查约束有什么问题?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐