2012-03-09 4 views
1

SQL 저장 프로 시저에 익숙하지 않습니다.저장 프로 시저 - 업데이트 쿼리

나는 customer라는 테이블 하나를 가지고 있으며 accountNo라는 하나의 필드를 가지고 있습니다. 나는 테이블에있는 모든 고객을 업데이트 할 1000

에서 증가해야 새로운 accountNo과 accountNo과 고객 테이블을 업데이트 할과 accountNo는 .....

100,1001,1002처럼 될 것입니다 사전에

감사합니다,

답변

2

Nimmy이 업데이트됩니다 당신이 고객 테이블이있다 "고 말했다는 사실을 기반으로 테이블

UPDATE Customer 
SET accountNumber = accountNumber+1000 

의 모든 고객 단 1 필드 - accountNumber "입니다. 그러나 제가 생각하는 것은 테이블이 실제로

를 (그것이!해야하지 않는 경우)이 경우에 당신은 아마 업데이트하고자하는 고객 ID를을 나타내는 키를 가지고 있다는 것입니다 하나의 특정 고객의 계좌 번호

UPDATE Customer 
SET accountNumber = accountNumber+1000 
WHERE customerId = 123 
0

Jamiec이 제공하는 솔루션은 거의 맞지만 accountNumber에 고유 키가있는 경우 고유 키 제한으로 인해 첫 번째 업데이트가 작동하지 않을 수 있습니다. accountNumber = 1 인 행이 먼저 업데이트되면 accoutNumber = 1 및 accountNumber = 1001을 고려하십시오. MySQL은 'xxx 행에 대해 중복 키'오류를 발생시킵니다.

당신은 위해 고객 테이블을 업데이트해야

UPDATE Customer 
SET accountNumber = accountNumber + 1000 
ORDER BY accountNumber DESC