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
운영게시판
최근게시물
MS-SQL Q&A 5800 게시물 읽기
No. 5800
트리거 예문좀 부탁드립니다...
작성자
최광훈(cghoon)
작성일
2010-11-10 10:05
조회수
7,227

..여러 가지로 시도를 해 보았는데 잘 안되서요..  고수님들   잘 부탁드립니다.

#질문의 요지는 동일한 테이블에 주문과 출고가 함께 입력됩니다.

그런데 주문테이블의 총출고수량을 출고레코드가 입력될 때마다 합계를 해서 수정해 주어야 한다는 것입니다.

이 수정부분에서 또 트리거가 발생을 하더라구요. 현재 시점에서 테이블을 수정할 수 는 없는 상태입니다.

테이블의 구조는 아래와 같습니다.

주문테이블(주문번호, 구분, 일자, 상품코드,주문수량, 출고수량, 총출고수량, 출고완료) 이 있습니다.

구분= 주문, 출고 로 이루어져 있습니다.

 

최초의 주문이 발생하면

주문레코드     주문번호    구분      일자        상품코드           주문수량            출고수량    총출고수량

                          1111          주문      11/11      aaaaa               100                     0                       0                              으로 레코드가 입력됩니다.

 

출고가 발생하면  동일한 테이블에

출고레코드      주문번호  구분       일자       상품코드           주문수량             출고수량    총출고수량

                              1111      출고       11/12     aaaaa               100                      50                   50

 

또 출고가 발생하면  동일한 테이블에

출고레코드      주문번호    구분       일자       상품코드           주문수량             출고수량    총출고수량 

                           1111          출고       11/15     aaaaa               100                      20                   70                         레코드가 추가 됩니다.

 

### 즉  주문레코드와 출고레코드가 동일한 주문테이블에 생성되며 출고이루어 질때 마다 동일한 주문번호의 레코드에 총출고수량을

새롭게 수정해야 합니다.

select @주문번호 = 주문번호,

            @상품코드 = 상품코드

            from inserted;

update 주문   set 총출고수량 = (select sum(출고수량) from 주문 where 주문번호 = @주문번호 and 상품코드 = @상품코드)

                    from 주문

## 물론 삭제시에도 동일한 주문번호에 해당하는 레코드만 삭제 됩니다.

# 가장 큰문제는 트리거는 after트리거라고 들었는데 출고수량을 sum해서 다시 주문테이블에 업데이트를 해도 총수량이 잘 맞지 않는다는 것입니다.

한 박자씩 느리게 업데이트되는 느낌이 들기도 합니다.

#그래서 재귀트리거를 써 보았는데 32회를 넘고 자동 롤백 됩니다.

 

 

 

 

[Top]
No.
제목
작성자
작성일
조회
5805동일한 테이블을 두번 연결할수 있나요???? [1]
배우는이
2010-11-30
6834
5804odbc 시간 만료 에러
sql초보
2010-11-22
7861
5802테이블 모델링시 text 타입은 어떻게 해야할까요?? [2]
손님
2010-11-18
6407
5800트리거 예문좀 부탁드립니다...
최광훈
2010-11-10
7227
5799테이블 설계중 문의좀 드릴께요 [1]
블루아이
2010-11-09
6805
5798mysql 의 SP 를 mssql의 SP 로 변환문제 [1]
이동훈
2010-11-09
6692
5797linked server에 대해 선배님들의 조언을 구합니다. [1]
박태은
2010-11-08
8751
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다