FireBird Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
파이어버드 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
IBPhoenix
FireBird Main site
볼랜드포럼 광고 모집

FireBird Q&A
[2869] 프로시저작성중 select 후 바로 delete
사다드 [] 3261 읽음    2008-06-23 12:13
프로시저를 작성해서 한 테이블에 값이 있으면 select 후 바로 delete 할려고 하는데 실행 시키면
begin
   /*------------------------------------------------------------------------*/
    BEGIN
    SELECT count(USER_ID) FROM DATA_REQUEST into :count_num;
    END
   /*------------------------------------------------------------------------*/
    IF(:count_num > 0) THEN
    BEGIN
    SELECT FIRST 1 SKIP 0 USER_ID, CMD, DATA FROM DATA_REQUEST into :USER_ID, :CMD, :DATA;
    END
    begin
    delete from data_request where user_id = :User_id;
    end
END;

위 프로시저 실행시
lock conflict on no wait transaction.
deadlock.
에러가 나오네요~

테이블에 1개의 데이타만 select 해서 select 값 저장하고 바로 delete 시켜려고 합니다.
다른 클라이언트에서 검색된 데이타가 또 검색이 되면 않되거든요~

1개의 데이타만 불러올경우 'FIRST 1 SKIP 0' 으로 했는데 더 좋은 방법이 있나요??

select 후 바로 delete 하는 방법은 없는건가요?

위 쿼리문을 따로 따로 실행하면 중간에 다른 클라이언트에서 delete 하기 전에 검색이 될꺼 같은데요??

+ -

관련 글 리스트
2869 프로시저작성중 select 후 바로 delete 사다드 3261 2008/06/23
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.