DELETE table1., table2. FROM table1, table2 WHERE (((table1.[Field1])=table2.[Field1]));
2
A
답변
2
당신은 요소 그것에 의존하는 다른를 삭제 CASCADE 삭제 사용할 수 있습니다.
예를 들어 학생 테이블, 코스 테이블 및 학생이 따르고 싶은 모든 코스를 나열하는 서브 스크립 션 테이블이있는 경우 CASCADE가있는 서브 스크립 션 테이블에서 해당 학생 및 관련된 엔트리를 삭제할 수 있습니다.
1
내가 중첩 제안 커서 :.
DECLARE @OuterVar [datatype];
DECLARE @OuterPKey [datatype];
DECLARE @InnerPKey [datatype];
DECLARE OuterCursor CURSOR
FOR SELECT table1.[Field1], table1.[PrimaryKey]
FROM table1;
OPEN OuterCursor
FETCH NEXT FROM OuterCursor INTO @OuterVar, @OuterPKey;
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE InnerCursor CURSOR
FOR SELECT table2.[PrimaryKey]
FROM table2
WHERE table2.[Field2] = @OuterVar;
OPEN InnerCursor;
WHILE @@FETCH_STATUS = 0
BEGIN
DELETE FROM table1 WHERE [PrimaryKey] = @OuterPKey;
DELETE FROM table2 WHERE [PrimaryKey] = @InnerPKey;
FETCH NEXT FROM InnerCursor INTO @InnerPKey;
END;
CLOSE InnerCursor;
DEALLOCATE InnerCursor;
FETCH NEXT FROM OuterCursor INTO @OuterVar, @OuterPKey;
END;
CLOSE OuterCursor;
DEALLOCATE OuterCursor;
테이블 1의 모든 레코드를 통해이 의지 루프, 그리고 각 레코드에 대해,이 표 2 표 1의 값 [필드 1] 및 표 2의 레코드를 찾을 수 . [Field2]는 동일합니다. 그런 다음 두 레코드를 모두 삭제합니다.
관련 문제
- 1. 테이블에서 레코드를 어떻게 삭제합니까?
- 2. 외래 키가있는 경우 행을 어떻게 삭제합니까? 예를 들어 SQL
- 3. 분할 테이블에서 행을 어떻게 삭제합니까?
- 4. 두 할당 예를 들어
- 5. 동시에 두 테이블에서 업데이트
- 6. 어떻게 예를 들어 ASPxClientCombobox
- 7. 어떻게 예를 들어 reshape2
- 8. 어떻게 예를 들어
- 9. 어떻게 예를 들어
- 10. 어떻게 예를 들어 PHP
- 11. 어떻게 예를 들어
- 12. 어떻게 클래스와 예를 들어
- 13. 어떻게 예를 들어 자바
- 14. 두 개의 키 예를 들어
- 15. 예를 들어
- 16. 다른 테이블을 사용하여 한 테이블에서 어떻게 삭제합니까?
- 17. 예를 들어 나는 두 개의 테이블이 MySQL을
- 18. 어떻게 자바 예를 들어 계산기
- 19. , 어떻게 예를 들어 하위 디렉토리
- 20. 어떻게 크롬 콘솔 예를 들어
- 21. 어떻게 예를 들어 모차르트 OZ
- 22. 어떻게 내가 예를 들어 원하는
- 23. 어떻게 안드로이드에 sqlite 테이블에서 열을 삭제합니까?
- 24. MySQL 큰 테이블에서 중복 행을 어떻게 삭제합니까?
- 25. 예를 들어
- 26. 예를 들어
- 27. 예를 들어
- 28. 예를 들어
- 29. 예를 들어
- 30. 예를 들어
왜 하나씩 삭제할 수 없습니까? – Igoranze
SQL 표준은 이것을 허용하지 않으므로 ANSI-SQL 솔루션은 존재하지 않습니다. 그리고 [: Field1]은 ANSI SQL에서 유효한 식별자가 아닙니다. 그러나 일부 DBMS에는 확장을 할 수있는 기능이 있습니다. 어떤 DBMS를 사용하고 있습니까? 포스트그레스? 신탁? –