잘린 문을 사용하는 방법 :
SQL의 Truncate 문은 개별 행 삭제를 기록하지 않고 테이블에서 모든 레코드를 빠르게 제거하는 데 사용되므로 큰 테이블을 지우는 데 더 효율적입니다. Truncate 문을 사용하기위한 기본 구문은 다음과 같습니다.
<code class="sql">TRUNCATE TABLE table_name;</code>
로그인 후 복사
여기에서 table_name
당신이 자르려는 테이블의 이름입니다. Truncate 문은 자동 증가 된 값을 시작 값으로 재설정하고 구조를 유지하면서 테이블에서 모든 데이터를 제거해야 할 때 유리할 수 있습니다.
예를 들어, employees
이라는 테이블이있는 경우 다음 명령을 사용하여 모든 레코드를 제거 할 수 있습니다.
<code class="sql">TRUNCATE TABLE employees;</code>
로그인 후 복사
Truncate를 사용하는 것은 일반적으로 Trunce를 사용하는 것이 테이블에서 모든 행을 제거하기 위해 삭제를 사용하는 것보다 빠릅니다. Truncate는 최소 로그인하고 트리거 트리거가 트리거되지 않기 때문에 테이블에서 모든 행을 제거하고 트리거가 완전히 기록되어 트리거를 트리거 할 수 있습니다.
데이터베이스에서 잘린 문을 실행하는 단계는 무엇입니까?
잘린 진술을 실행하는 데 몇 가지 간단한 단계가 필요합니다.
- 데이터베이스 액세스 : 선호하는 데이터베이스 관리 도구 또는 명령 줄 인터페이스를 사용하여 데이터베이스에 연결하십시오.
- 적절한 데이터베이스 선택 : 데이터베이스 시스템에 여러 데이터베이스가 포함 된 경우 올바른 데이터베이스 내에서 작동하는지 확인하십시오.
- 체크 테이블 종속성 : 테이블을 잘라 내기 전에 영향을받을 수있는 외국의 주요 제약 조건이나 종속성을 확인하는 것이 중요합니다. 일시적으로 비활성화해야 할 수도 있습니다.
- 백업 데이터 (선택 사항) : 일부 데이터베이스 시스템에서 Truncate를 롤백 할 수 없으므로 명령을 실행하기 전에 데이터를 백업하는 것이 좋습니다.
- Truncate 명령문 실행 : 이전에 제공된 구문을 사용하여 (
TRUNCATE TABLE table_name;
) 테이블을 지우십시오.
- 결과 확인 : Truncate 명령을 실행 한 후 테이블을 쿼리하거나 적절한 명령을 사용하여 행 카운트를 확인하여 테이블이 비어 있는지 확인하십시오.
다음은 SQL 환경에서 결과를 확인하는 방법의 예입니다.
<code class="sql">SELECT COUNT(*) FROM table_name;</code>
로그인 후 복사
자손이 성공하면 0
이 반환됩니다.
Truncate는 성능 및 사용 측면에서 삭제와 어떻게 다릅니 까?
Truncate 및 Delete는 모두 테이블에서 데이터를 제거하는 데 사용되지만 성능 및 사용 측면에서 다르게 작동합니다.
성능:
-
잘 린트 :
- Truncate는 일반적으로 개별 행 삭제를 기록하지 않기 때문에 테이블에서 모든 레코드를 제거하는 데 삭제하는 것보다 더 빠릅니다. 대신 테이블 데이터를 저장하는 데 사용되는 데이터 페이지를 처리합니다.
- 자동 증가 된 값을 시작 값으로 재설정하여 번호를 다시 시작할 때 유리할 수 있습니다.
-
삭제 :
- 삭제 작업은 완전히 기록되어있어서 느린다. 모든 삭제는 트랜잭션 로그에 기록되므로 필요한 경우 행으로 롤백 할 수 있습니다.
- Delete는 자동 증가 값을 재설정하지 않으므로 숫자는 중단 된 위치에서 계속됩니다.
용법:
-
잘 린트 :
- 이러한 제약 조건이 비활성화되지 않는 한 외국 키 제약 조건으로 참조 된 테이블에는 Truncate를 사용할 수 없습니다.
- 테이블과 관련된 트리거를 활성화하지 않습니다.
- 인덱스 된보기에 참여하는 테이블을 자울 수는 없습니다.
-
삭제 :
- 제약 조건이 허용 된 경우 외국의 주요 제약 조건이있는 테이블에서 삭제를 사용할 수 있습니다.
- 삭제는 테이블에 정의 된 트리거를 활성화합니다.
- 삭제를 사용하여 WHERE 절에서 조건을 지정하여 특정 행을 제거 할 수 있습니다.
자손을 롤백 할 수 있으며, 그렇지 않은 경우 데이터 복구의 대안은 무엇입니까?
Truncate가 롤백 될 수 있는지 여부는 데이터베이스 시스템에 따라 다릅니다.
- MySQL에서 : Truncate는 트랜잭션이며 거래 내에서 실행되면 롤백 할 수 있습니다.
- SQL Server : Truncate는 트랜잭션이 아니며 롤백 할 수 없습니다. DDL 작업으로 간주됩니다.
- PostgreSQL : Truncate는 트랜잭션 내에서 롤백 할 수 있습니다.
데이터베이스 시스템에서 Truncate를 롤백 할 수없고 데이터를 복구 해야하는 경우 다음과 같은 대안을 고려하십시오.
- 백업 및 복원 : 데이터베이스의 최근 백업이있는 경우 데이터를 복구하여 데이터를 복구 할 수 있습니다. 이 접근법은 백업이 정기적으로 수행되고 유지되어야합니다.
- 시점 복구 : 일부 데이터베이스 시스템은 Point-in-Time 복구를 지원하므로 Truncate 작업이 실행되기 전에 데이터베이스를 특정 지점으로 복원 할 수 있습니다.
- 데이터 가져 오기 : 최근에 데이터를 내보낸 경우 Truncate 작업 후에 데이터를 테이블에 다시 가져올 수 있습니다.
- REDO 작업 : 테이블에서 작업을 수행하는 로그 (예 : 삽입)가있는 경우 이러한 작업을 재생하여 데이터를 재건 할 수 있습니다.
어쨌든 데이터 손실의 위험을 최소화하려면 Truncate와 같은 잠재적으로 파괴적인 작업을 수행하기 전에 강력한 백업 및 복구 절차를 갖추는 것이 중요합니다.
위 내용은 Truncate 문을 어떻게 사용합니까? 자르기와 삭제의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!