2010-08-05 2 views
3

빠른 초보 MySQL 문제. 주어진 필드의 최소값이 0인지 확인하는 가장 간단한 방법은 무엇입니까?MySQL 필드의 최소값 설정 가능?

기본적으로 우리는 자동으로 실행되고 15 분마다 필드 값에서 정수 값을 뺍니다. 그러나 0으로 유지되고 음수로되지 않도록 0으로되는 항목을 원합니다.

이 단순히 PHP에서 루프와 함께 할 수도 있지만 데이터베이스에 대한 호출을 제한하기 위해 노력하고있어 ...

이 필드 0의 최소 값을하거나하게하거나 간단한 방법이 있나요 그 필드에있는 모든 음수 값이 자동으로 0이됩니까?

감사합니다.

+0

그냥있는 특정 필드의 값을 찾기 위해 당신의 업데이트 쿼리를 변경할 경우에만 값을 뺀되어 있는지 확인 0보다 크거나, 더 좋지만, 빼는 금액보다 커야합니다. – kmfk

+0

와우. 아주 간단합니다. WHERE 절에서 조건문을 사용할 수 있다는 것을 항상 잊어 버립니다. 고마워요! – user405056

답변

2

필드에 UNSIGNED 속성을 설정할 수 있습니다. 이 필드를 무언가 <으로 설정하려고하면 에러가 발생합니다.

+0

Nope. 오류가없고 경고 만합니다. MySQL은 여전히 ​​행복하게 뺄셈을 할 것입니다. 기본 부호없는 int 필드에서 '0 - 1 = 4294967295' –

+0

예, 단지 경고이지만, 행은 음수 값 대신 0으로 삽입됩니다. 그냥 MySQL에서 5.1.41-3ubuntu12.6, int (10) unsigned NOT NULL 열 –

4

간단한 조건부 "WHERE"를 시도 했습니까? 아니면 그보다 더 복잡한 문제가 있습니까? 값이 이미 0 인 경우

UPDATE mytable SET mycolumn=mycolumn-1 WHERE mycolumn>0 
+0

롤,이 정말 간단하고 스마트 테스트 : D 조 – Hatim

1

당신은 ...

또 다른 아이디어를 제로로 설정, 음의 값을 수정하는 업데이트 트리거 값에서 빼하지 않는 스크립트에 로직을 추가 할 수 있습니다.

0

일반적인 방법은 CHECK 제약 조건이지만 MySQL은이를 지원하지 않습니다.

그래서 하나가 열이 서명하고/또는 응용 프로그램 논리에 당신이> 0

관련 문제