2013-05-21 6 views
0

안녕하세요, PHP를 사용하여 MySQL 데이터베이스의 정보를 조작하고 있습니다. 그러나 다른 테이블 내의 정보를 기반으로 테이블을 업데이트하는 방법 (모든 레코드를 업데이트해야 함)을 찾고 있습니다.mysql 데이터베이스의 모든 열을 업데이트하는 스크립트

예를 들어, 제품 테이블에 저장된 고유 ID를 사용하여 제품 목록을 각각 10 개씩 말할 수 있습니다. 나는 동일한 제품 ID와 각 제품에 대해 수행 된 구매 금액을 가진 purchases 테이블을 가지고있다. 제품 테이블의 각 제품을 업데이트하여 각 제품에 대한 총 구매 수량을 반영하고 제품 테이블의 일부인 instock이라는 열에 저장하려고합니다.

어떻게이 작업을 수행 할 수 있습니까?

+5

테이블 구조를 보여주고 샘플 데이터를 표시하고 무엇을 시도했는지 알려줍니다. – user4035

+4

또한 그 일을하기 전에 사이트를 검색하고 싶을 수도 있습니다. – PeeHaa

+0

@ kern elliott 'database'는 'table'을 의미합니다. 그렇다고하더라도, 나는이 모든 기둥들이 어디로 들어 왔는지를 보지 못합니다. sqlfiddle을 제공하십시오. – Strawberry

답변

0

귀하의 상황을 정확하게 이해하면 재고 수량을 처리하고 있습니다. 아이템을 구입할 때 (Products 테이블의 항목으로 표시), 재고 수량 수치를 줄여야합니다. 이는 데이터 일관성을 유지하기 위해 Products 테이블에 대한 새 항목과 동일한 트랜잭션 내에서 발생해야합니다. 이 구현하려면 테이블에 트리거를 사용하는 것이 좋습니다. 이 사이트에서 MySQL에 트리거를 구현하는 것에 대한 많은 정보를 찾을 수 있습니다. 당신이 사용할 수있는 트리거는 다음과 같이 보일 수 있습니다 :

CREATE TRIGGER update_stock_count 
    BEFORE INSERT ON Purchases 
    FOR EACH ROW 
    BEGIN 
     UPDATE Products SET stock_count = stock_count - NEW.quantity_ordered 
      WHERE product_id = NEW.product_id; 
    END; 

이 트리거가 제품의 충분한 재고가되지 않을 수도 있음을 고려하지 않습니다 않으며 업데이트를 처리하거나 Purchases 테이블에 삭제합니다 않습니다하지만 그렇게 수정 될 수 있습니다.

+0

정보는 내가 염두에 두었던 예제에서 약간 떨어져 있지만 내 사례에서 사용하기 위해이 코드를 어떻게 사용할 수 있는지 이해합니다. 감사합니다. –

관련 문제