반응형
실행 중인 합계로 자동 업데이트하려면 SQL 합계 테이블이 필요합니다.트리거를 사용해야 합니까 아니면 (php와) 병합해야 합니까?3개의 트리거를 1개로 결합하려면 어떻게 해야 합니까?
다음 세 가지 문장을 시도해 보았는데 어떻게 결합해야 할지 잘 모르겠습니다.
CREATE TRIGGER upd_totals
AFTER INSERT ON pc12_status
FOR EACH ROW
INSERT INTO total_hrs (acft_hrs, date_flight, acft_tail)
SELECT hrs_end, flight_date, tail_no FROM acft_status
INNER JOIN total_hours ON acft_status.tail_no = total_hrs.acft_tail;
&
CREATE TRIGGER total_calc_prop
AFTER INSERT ON total_hrs
FOR EACH ROW
UPDATE total_hrs SET prop_hrs = (SELECT s.flight_date, s.tail_no, s.flight_hrs
SUM(s.flight_hrs) OVER (PARTITION BY s.tail_no) AS prop_hrs
FROM acft_status s);
&
CREATE TRIGGER total_calc_eng
AFTER INSERT ON total_hrs
FOR EACH ROW
UPDATE total_hrs SET engine_hrs = (SELECT s.flight_date, s.tail_no, s.flight_hrs
SUM(s.flight_hrs) OVER (PARTITION BY s.tail_no) AS engine_hrs
FROM acft_status s);
나는 데이터가 있는 아래 두 개의 표를 가지고 있습니다.
격식을 차
flight_date flight_hrs tail_no hrs_end hrs_start
2017-12-31 100.0 1378 100.0 0.0
총_시간
date _flight acft_tail acft_hrs engine_hrs prop_hrs
2017-12-31 1378 100.0 98.5 96.5
aft_status 테이블에 데이터를 추가할 때마다 aft_hrs 필드에 hrs_end를 복사하는 동안 engine_hrs 및 prop_hrs 필드의 이전 항목을 자동으로 합산해야 합니다.
INSERT INTO acft_status (flight_date, flight_hrs, tail_no, hrs_end, hrs start)
VALUES ("2018-01-01", 1.3, 1378, 101.3, 100.0);
그런 다음 total_hrs를 다음으로 업데이트합니다.
총_시간
date _flight acft_tail acft_hrs engine_hrs prop_hrs
2017-12-31 1378 100.0 98.5 96.5
2017-12-31 1378 101.3 99.8 97.8
세 개의 트리거를 모두 실행하려고 하면 "이 저장된 기능/트리거를 호출한 문에서 이미 사용하고 있으므로 저장된 기능/트리거에서 테이블 'total_hrs'를 업데이트할 수 없습니다"라는 메시지가 표시됩니다.
저는 마리아DB 10.2를 실행하고 있습니다.FOLLOW
그리고.PROCEED
트리거에 추가됩니다.하나의 이벤트에서 여러 트리거를 실행할 수 있습니다.
트리거가 가장 효율적인 방법입니까?그렇다면 자동으로 실행되도록 하려면 어떻게 결합해야 합니까?해볼까요?MERGE
대신에 php를 사용하여 쿼리에서 트리거합니다???
언급URL : https://stackoverflow.com/questions/49472685/i-need-a-sql-totals-table-to-update-automatically-with-running-totals-should-i
반응형
'programing' 카테고리의 다른 글
C에서 구조의 포인터는 항상 첫 번째 부재를 가리킵니까? (0) | 2023.10.02 |
---|---|
Oracle용 Eclipse Database Tools에서 자동 커밋을 비활성화하는 방법은 무엇입니까? (0) | 2023.10.02 |
텍스트 영역에서 줄 바꿈 유지 (0) | 2023.10.02 |
C-to-하드웨어 컴파일러 (HLL 합성) (0) | 2023.10.02 |
Nginx에서 모든 Angular 요청을 index.html로 리디렉션하는 방법 (0) | 2023.10.02 |