加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在postgreSQL中引发错误

发布时间:2020-12-13 16:06:58 所属栏目:百科 来源:网络整理
导读: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
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;

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读