모호한 제목에 대해 죄송합니다. 내가하려는 작업을 어떻게 정의해야할지 잘 모르겠습니다.
3 개의 테이블이 있습니다. 카테고리-고유 ID (cat_id) 질문-고유 ID 및 카테고리 외래 키 (ques_category_fk) 답변-고유 ID 및 질문 외래 키 (ans_question_fk)
내가하려는 것은 단일 카테고리 아래의 모든 질문과 답변을 삭제하는 것입니다. 질문을 삭제해도 문제 없습니다. 그러나 동일한 SQL 문을 사용하여 답변을 삭제하는 방법을 모르겠습니다.
나는 모든 질문을로드하고, 그것들을 반복하거나, 답변에 범주 외래 키를 추가하는 것을 생각했습니다. 둘 다 비효율적으로 보입니다.
내 현재 삭제 문은 다음과 같습니다.
DELETE FROM questions WHERE ques_category_fk = @fk
작성 및 유지 관리가 훨씬 더 쉬운 솔루션은 해당 쿼리를 실행하고 답변 및 질문을 삭제 한 다음 하나의 트랜잭션에서 개별적으로 실행 한 다음 커밋하는 것입니다. 이렇게하면 모든 항목이 삭제되었는지 (또는 쿼리가 실패한 경우 아무것도 삭제되지 않음), 길고 혼란스러운 쿼리에 의존 할 필요가 없습니다.
약간의 모의 예제에 넣으려면 id = 6으로 질문과 후속 답변을 제거하고 싶다고 가정 해 봅시다 (제 예에서 idquestion은 테이블 질문의 pkey이고 테이블 답변의 f_key 이름입니다).
start transaction;
delete from answers where idquestions = 6;
delete from questions where idquestions = 6;
commit;
그런 다음 많은 질문을 제거하려면 먼저 쿼리를 실행하여 제거하려는 모든 질문 ID를 선택하고이를 반복합니다. 각 ID에 대해 위의 쿼리 세트를 실행합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다