KSPARK 님이 쓰신 글 :
: 말씀해주신데로 Test 하다가 무엇이 잘못 되었는지 한번 같은 Data가 new_Table2로 동일한 Data가 2번
: 들어가서 IB expert 에서 Delete 를 하니까 아래와 같은 Message가 나오면서 Delete가
: 안됩니다...
:
: 어떻게 해야 하나요?
:
: "Cannot Delete record
: There is at least one record with same fields values"
:
:
: 까막.윤창희 님이 쓰신 글 :
: : KSPARK 님이 쓰신 글 :
: : : 파이어 버드에서 Trigger를 이용해서 Tabl1의 내용에 UpDate 를 하면 현재
: : : UpDate할 현재 Table의 내용이 Table2에 Insert 되도록 할려고 합니다.
: : :
: : : 어떻게 하면 되는지 알려 주시면 감사하겠습니다
: : :
: : : 아래는 제가 Test 해본 Code 인데
: : : "select i_oo = s_no from new_table" 에서 Error가 납니다
: : :
: : : Table1에 S_NO(Integer), ID(VarChar), sFIle(blob)이 있고 이것을 UpDate 하기전에
: : : 현재 값을 Table2에 복사 할려고 합니다
: : :
: : :
: : : create trigger trg_test for new_table befor insert position 0 as
: : : declare variable i_oo integer;
: : : declare variable i_PbaId varchar(20);
: : : declare variable i_Bar_Code blob;
: : :
: : : begin
: : :
: : : select i_oo = s_no from new_table // 변수에 현재 Table의 값을 어떻게 넣는지??
: : : insert into new_table2 (D_NO, D_PBAID, D_BAR_CODE) values(S_NO, PBAID, BAR_CODE);
: : :
: : : end
: :
: : 안녕하세요. 까막입니다.
: :
: : New.S_No 이런 식으로 사용하시면 됩니다.
: : 트리거에서는 New.xx Old.xx 이런식으로 사용합니다.
: : 물론 DB 에 따라 이름이 다를 수 있읍니다.
: : SQL Server 에서는 Inserted.xx 뭐 이런 식으로 사용한 거 같네요. 기억이.. ^^
: :
: :
: :
: : 위대한 단군혼이 살아있는 나라.... 대한민국.
안녕하세요. 까막입니다.
"Cannot Delete record
There is at least one record with same fields values"
이 오류는 같은 데이터가 두개가 있어서 발생합니다.
동일한 데이터가 두번 입력이 되었으니, 완전하게 동일한 레코드가 2개가 존재하는 거죠.
이때 한 레코드만 삭제를 하려고 하면 2개중에 어떤걸 삭제하는 것인지 알수가 없으므로 오류가 발생하죠.
DELETE FROM TableName WHERE FieldName = 'xxx..'
이렇게 하시고, 두 레코드를 모두 지우신 다음 다시 입력하시는게 좋겠네요.
아니면 자동증가 필드를 하나 추가하시던가요.
그리고, 같은 데이터가 두번 들어가신 이유를 찾아서 그걸 방지해야 겠죠.
위대한 단군혼이 살아있는 나라.... 대한민국.
|