2012-03-29 2 views
2

데이터베이스의 주문 레코드 ID를 기반으로 확인 번호를 생성하는 레거시 시스템에서 작업하고 있습니다. 자동 증분을 사용하여 자동으로 생성되는 행 ID 앞에 추가되는 제로의 무리입니다. 현재 시스템은 주문을 데이터베이스에 삽입 한 다음 즉시 업데이트를 수행하여 확인 번호를 추가합니다 (프로그래밍 방식으로 삽입 ID를받은 후).삽입 할 때 고유 ID 가져 오기 및 사용

나는 주문을 할 때 확인 번호를 추가하여이 두 번째 단계를 줄이고 싶습니다. 그러나, 나는 이것을 어떻게 할 수 있는지 또는 SQL을 통해 할 수 있는지를 모르고있다. 이것이 가능한가? 그렇다면 어떻게? 나는 이것을 봤지만 쿼리가 이미 실행 된 후 마지막 삽입 ID를 얻는 방법을 알려줍니다.

+0

AI ID가 0으로 채워진 버전 일 경우 테이블에 중복 데이터가 저장되어서는 안됩니다. – nnichols

+0

동의합니다. 그러나 이것이 바뀔 수있는 합리적인 기회가 있습니다 (나는 내 ​​길을 가지면) 지금 당장은 그대로 그대로 둡니다. –

답변

3

주문이 삽입되는 곳에서 실행되는 trigger을 쓸 수 있습니다.

샘플 :

CREATE TRIGGER order_zeros BEFORE INSERT ON orders 
for each row 
begin 
    SET NEW.confirmation = LPAD(NEW.id, 8, '0'); 
end; 

면책 조항 :이 코드는 유일한 솔루션을 설명하기 위해, 테스트되지 않은 상태입니다.

+0

그게 내가 생각한 것이지만, 나는 단지 더 단순한 것을 놓쳤다. 맞춰봐. 답변 주셔서 감사합니다. –

관련 문제