database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 7086 게시물 읽기
No. 7086
트리거에서.....에러리턴하고 중지하는 법은 없나요..?
작성자
왕초보
작성일
2007-03-24 14:46
조회수
4,422

트리거를 실행하다가 조건에 만족하지 않으면 에러를 리턴할려고 하는데 방법을 모르겠네요

CREATE OR REPLACE FUNCTION func_workitem_af_in_row() RETURNS "trigger"   
 AS '
 declare
 cnt int;
 
 begin
  ----수주품목 테이블 정리
  update orderitem set qtywork = qtywork + coalesce(new.qtyea,null,0)
   where orderpk = new.orderpk and orderno2 = new.orderno2 ;
  
  select qtyea - qtywork
    into cnt
           from orderitem
          where orderpk = new.orderpk and orderno2 = new.orderno2;
  
  IF cnt = 0 then
   update orderitem set workyn = ''N''
   where orderpk = new.orderpk and orderno2 = new.orderno2;
  ElseIF cnt > 0 then
   update orderitem set workyn = ''Y''
   where orderpk = new.orderpk and orderno2 = new.orderno2; 
  ElseIF < 0 Then 
        -----------------여기에서 에러를 리턴해야 하는데 방법이 없나요...?
  END IF;
  return null;
end;'LANGUAGE plpgsql VOLATILE;

이 글에 대한 댓글이 총 2건 있습니다.

raise 구문을 사용합니다.


중지를 하려면, 


raise error '......' 

이런식이 될 것 같네요.


http://www.postgresql.or.kr/pgdoc/plpgsql-errors-and-messages.html

김상기(ioseph)님이 2007-03-26 09:51에 작성한 댓글입니다.

답변 너무나 감사합니다.
쉽게 해결되었습니다...

왕초보님이 2007-03-27 09:22에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
7090서버외 클라이언트에서 pgAdmin III Query로 프로세서 죽일려면?
이기자
2007-04-02
4742
7088디비를생성하고 테이블을생성하는작업을 [1]
대로
2007-03-29
4355
7087odbc 로 mdb 를이용해서 프로그램을 만들었는데여 [4]
대로
2007-03-26
4847
7086트리거에서.....에러리턴하고 중지하는 법은 없나요..? [2]
왕초보
2007-03-24
4422
7085OPENQUERY 사용시 문제점
likeclay
2007-03-23
4535
7084ERROR: Invalid page header in block 4945 [1]
초보자
2007-03-23
4753
7083insert on duplicate 가 없는건가요? [1]
송효진
2007-03-21
4299
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.023초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다