2013-07-29 4 views
0

나는 '물건'과 '주어진'라는 테이블에있다. 나는 '물건'에 columnt를 한 개 더 추가하고 ALTER TABLE 후에는 UPDATE를 사용했습니다. 그러나 이것은 그 순간에만 차이가 있습니다. 내 말은, 새로운 칼럼은 각 주어진 금액 후에 주식의 양을 줄 것입니다. 'stuff'에는 'totalAmount'가 있고 'amount'가 있습니다.MySQL - 어떻게 여러 개의 열의 다른 테이블의 합계와 동기화 된 새 열을 추가 할 수 있습니다

내가 사용 :

ALTER TABLE stuff ADD stock MEDIUMUNINT UNSIGNED; 

UPDATE stuff SET stuff = totalAmount - (SELECT SUM(given.amount) FROM given WHERE id = given.productId); 

이 해당 업데이트를 사용할 수 있습니다. 어떻게하면이 두 테이블을 각각의 주어진 금액 후에 동기화 할 수 있습니까? 재고도 영향을 받습니까? 사전 :

+0

이 link.http를 참조 테이블 "물건"의 "물건"을 업데이트 할 것 "주어진"테이블에 대한 INSERT에 대한 트리거를 만들기에

감사 : // howovertoflower.com/questions/4236912/how-to-create-calculated-field-in-mysql. 당신은 테이블에 계산 필드를 추가 할 수 없습니다. 대신 레코드를 삽입 할 때 값을 업데이트하는 트리거를 생성 할 수 있습니다. – Annie

+0

'stuff' 테이블에서'stuff' 필드를 업데이트하기 위해'AFTER UPDATE/AFTER INSERT' 또는 둘 다 변경하고자 할 때'given' 테이블에 트리거를 생성해야합니다 – mirkobrankovic

답변

0

CREATE TRIGGER [TRIGGER_ALTER_STUFF] ON [dbo].[given] 
FOR INSERT, UPDATE 
AS 
BEGIN 
    UPDATE stuff SET stuff = totalAmount - (SELECT SUM(given.amount) FROM given WHERE id = given.productId); 
END 
관련 문제