2013-08-20 3 views
0

다른 테이블의 조건에 따라 테이블에서 일부 레코드를 삭제하려고합니다. 어떻게하면 두 테이블에서 레코드를 제거하지 않고 해당 테이블 중 하나에서 삭제합니까?데이터베이스의 여러 테이블에서 행 삭제

다른 테이블과 결합 된 테이블을 삭제하려고하는데 쿼리가 다음과 같이 보입니다.

DELETE DeletingFromTable 
FROM DeletingFromTable 
     INNER JOIN CriteriaTable ON DeletingFromTable.field_id = CriteriaTable.id 
WHERE CriteriaTable.criteria = "value" ; 
+1

당신이 그들에있는 테이블 (DROP) 또는 값을 삭제 의미합니까? –

+0

[가능한 제약 조건을 무시하고 SQL Server 테이블 목록을 삭제하는 방법?] (http://stackoverflow.com/questions/1720755/how-to-drop-a-list-of-sql-server-tables- ignoring-constraints) – dazedandconfused

+0

이 부분을 살펴볼 수도 있습니다. 당신의 질문은 가능한 복제본입니다 [SQL Server : drop table cascade equivalent?] (http://stackoverflow.com/questions/4858488/sql-server-drop-table-cascade-equivalent) –

답변

1

이 작동합니다 :

DELETE DeleteFromTable FROM DeleteFromTable AS DT 
JOIN CriteriaFromTable AS CT ON DT.SomeId = CT.SomeId 
WHERE CT.SomeId=[value] 
1

귀하의 질문은 문제가 무엇인지에 100 % 확실하지 않습니다 만,이 쿼리는 동시에 테이블 1, 2, 3을 삭제합니다 :

DROP TABLE table1,table2,table3 
+1

테이블간에 종속성이없는 경우 작동합니다. 그렇지 않으면 종속성 (기본 키, 외래 키)을 먼저 제거한 다음 테이블을 삭제해야합니다. –

+0

그의 질문에 대한 편집을보고 나면 실제로 그가 원하는 일이 아니지만 예, 테이블을 삭제하기 전에 제약 조건을 삭제해야합니다. – steoleary

1

당신은 하나에서 데이터를 삭제할 수 있습니다 한 번에 한 테이블.

은 세미콜론으로 구분 된 여러 테이블 쓰기 여러 쿼리에서 삭제하고

delete from table1; 
delete from table2; 
delete from table3; 

처럼 onces에 그것을 실행 또는 당신은이 작업을 수행하는 프로 시저를 작성 할 수 있습니다합니다.

뿐만 아니라 Drop multiple tables in one shot in mysql

+0

Begin and Commit 트랜잭션 내에서 모든 삭제 내용을 래핑 할 수 있습니다 –

0
당신은 그냥 쿼리를 작성할 수 있습니다

DROP에 테이블과 같이이 스레드를 확인하십시오 : 당신이 그들 사이에 가질 수있는 테이블 및 제약 조건에 따라

DROP TABLE [TABLE_1] 
DROP TABLE [TABLE_2] 
DROP TABLE [TABLE_3] 

, 당신 올바른 순서로 테이블을 DROP해야합니다.

SQL 버전에 따라 테이블을 마우스 오른쪽 버튼으로 클릭하면 '종속성보기'가 가능합니다. DROP에 계획중인 3 개의 테이블이 서로에 대해서만 종속되어있는 경우, 먼저 보조 종속성이없는 테이블 DROP을 사용하여 실패하지 않도록해야합니다.

예를 들어, 기본 키가 하위 테이블에서 외래 키로 참조되는 상위 테이블을 삭제하려고하면 DROP이 실패합니다. 따라서 외래 키가있는 하위 테이블을 먼저 삭제하면 하위 테이블 DROP이 계속 허용됩니다.

그러나 테이블이 삭제할 테이블 외부에 다른 종속성이있는 경우이 작업을 수행하려면 종속성을 제거해야합니다.

0

당신은 사용할 수 있습니다

DELETE FROM TableName 

모든 데이터를 제거합니다 어느,하지만 당신은 어떤 시드 열이있는 경우, 이러한 재설정되지 않습니다. 당신이 데이터를 삭제하고 PK의의 시드를 재설정하려는 경우, 당신은 당신이이 경우 해당 게시물을 참조 referential integrity이 다른 테이블이 있는지 여부를 고려할 필요가 ... TRUNCATE

TRUNCATE TABLE TableName 

를 사용하지만, 여기 SQL Server: How to ignore referential integrity until COMMIT?

편집 : 위의

귀하의 의견 ...이 테이블 _에서 삭제 같은

삭제 쿼리 WHERE some_column = some_value;

... 특정 행을 삭제 하시겠습니까?