2011-07-04 4 views
0

DELETE 쿼리에 의해 삭제 된 ID를 반환하고 싶습니다. Firebird에서 삭제 된 행의 ID를 반환하는 방법은 무엇입니까?

는 Stackoverlow, 나는 발견이 : How to get ID of the last updated row in MySQL?

TOP1 대답은 아주 좋은 솔루션을하지만 MySQL 용입니다. 나는 파이어 버드 설명서의 일부를 읽은 후 파이어 버드에서 동일한 작업을 수행하려고 :

set term^; 

EXECUTE BLOCK 
AS 
    DECLARE VARIABLE uids BLOB SUB_TYPE TEXT; 
begin 
    DELETE FROM CATEGORY WHERE name = 'Haló' 
    AND (SELECT id INTO :uids); 
    SELECT @uids; 
end 
^ 

예, 나는 변수를 덮어 쓰는거야 이후 '의 UID는'항상 하나 개의 ID가 포함됩니다 것을 알고 있지만, 그것은 단지입니다 테스트, 그리고 무엇보다, 그것은 작동하지 않습니다. 그것은 'INTO'에서 "Token unknown - line 8, column 21"이라고 말합니다. 무엇을해야할지 모르겠다. 계속 하시겠습니까? : \

당신의 도움에 감사드립니다! 이를 위해

답변

2

, 레코드가 어디 DELETE 같은

에 대한 조건, SELECT ID FROM CATEGORY WHERE name = 'Haló'

  1. 그런 다음 같은 지우고 싶은 그 ID를 가져
    1. 먼저 별도의 쿼리

      을 실행하십시오 기록을 삭제하십시오.
+0

감사합니다. 그래서 유일한 방법입니다. 어쨌든 이것은 내 첫 번째 생각 이었지만 SELECT 쿼리로 인해 느려질 것이라고 생각했습니다. –

0

는이처럼 "돌아 가기"절을 시도해 볼 수도 있습니다 : 대답에 대한

delete from Scholars 
    where firstname = 'Henry' and lastname = 'Higgins' 
    returning lastname, fullname, id 

look here for more details

+0

이것은 DELETE 문이 최대 하나의 row__ __removing 일 때만 유효합니다. –

관련 문제