2010-02-14 4 views
2

나는 카운터 (int)로 작동하는 mysql 테이블 컬럼을 가졌다. 내가 그 열을 업데이트 할 때마다 나는 그것이 46테이블 열에 1을 더하려면 어떻게해야합니까?

가 어떻게 SQL에 있다고 할 수있을하려는 필드의 값은 45이었다 그렇다면 1.

와 plussed 얻을 싶어?

당신과 같은 쿼리를 사용할 수 있습니다

답변

5

MySQL v5.0.2 이상은 행 중 하나에서 삽입/업데이트/삭제 작업이 수행 될 때마다 실행되는 코드 조각 인 트리거를 지원합니다.

당신이 때마다 일이 원하기 때문에 MySQL은 트리거에 대한 자세한 내용은 this link

10

일이 : 당신에게 달려 테이블의 이름과 열 ;-)를 교체하려면 물론

update your_table 
set your_column = your_column + 1 
where identifier = X 

,
그리고의 조건 확인하기 where 절은 OK입니다 ;-)

+0

이렇게하고 방아쇠를 당깁니다. @ 파스칼 : 질문에 대한 각 업데이 트에 대해 묻습니다. –

2

을 확인를 들어, 트리거 사용할 수 있습니다

delimiter // 
create trigger increment_field before update on your_table 
for each row 
begin 
if new.your_column <> old.your_column then 
    set new.your_column = new.your_column + 1 
end if; 
end;// 
delimiter ; 

내가 당신의 질문을 이해 완전히 확실하지 오전입니다. 위의 해결책은 your_column에 다른 값이 주어지면 행을 업데이트 할 때마다 your_column = new_value + 1을 대신 만들 것입니다. 새 키워드와 이전 키워드를 사용하고 각 행에 사용 된 조건을 사용자의 필요에 맞게 변경해야합니다.

관련 문제