2011-10-08 4 views
0

SQL이 업데이트시 계산을 수행 할 수 있습니까? 예를 들어, 저장된 제품의 수량은 가능SQL은 업데이트시 계산을 수행 할 수 있습니까?

$sql_update = " 
    UPDATE store_products 
    SET 
     product_quantity = ? 
    WHERE store_products.product_id = ? 
    "; 

    $result = $connection->run_query($sql_update,array(
     3, 
     $product->product_id 
)); 

인가, 5, 판매 후였다 3 항목, 내가 product tables에 남아있는 수량을 업데이트하고 싶은 말은?

+1

질문이 없습니다. 간단한 업데이트를 찾고 있지 않습니까? proudct를 팔 때마다 업데이 트를 실행하여 판매 된 항목의 양을 줄였습니다 –

+1

@MostyMostacho 그는 'product'와'store_products'라는 두 개의 다른 테이블에 대해 이야기하고 있습니다. 그의 update 문을보십시오. – Icarus

+0

진짜 질문은 : 왜 당신은 두 개의 서로 다른 테이블에 동일한 정보 (제품 수량)를 유지합니까? 덕분에 –

답변

1

예 - 설명하는 것을 달성하려면 AFTER UPDATE 트리거를 구현해야합니다. 자세한 내용 및 샘플,

은 다음을 참조하십시오

편집 - 코멘트에 따라 샘플 :

CREATE TRIGGER produpd AFTER UPDATE ON store_products 
    FOR EACH ROW BEGIN 
    UPDATE product SET quantity = quantity - NEW.product_quantity WHERE product_id = NEW.product_id; 
    END; 

이 트리거가 작성 될 필요가 나는 n MySQL DB ... 질문에서 SQL 코드를 실행하면 MySQL이이 트리거를 호출하고 products 테이블을 업데이트합니다.

+0

에게 감사드립니다. 당신이 제안한 링크를 한번 보았지만'AFTER UPDATE'를 어떻게 사용하는지 아직 모르겠습니다 ... – laukok

+0

위의 편집을 참조하십시오 ... – Yahia

+0

내 대답을 삭제했습니다. 업데이트 가능한 뷰에서 신중하게 mysql 문서를 읽은 후에는 뷰에서 테이블 중 하나의 열만이 한 번에 업데이트 할 수 있다고 분명히 말했습니다. 이 시나리오에서는 유용하지 않습니다. 이 대답을 upvoting. – Icarus

관련 문제