UNDROP TABLE
UNDROP TABLE
드롭된 테이블의 가장 최근 버전을 복원하는 명령이에요.
출처: 문서
본문
드롭된 테이블의 가장 최근 버전을 복원해요.
구문
UNDROP TABLE <name>
매개변수
name
복원할 테이블의 식별자를 지정해요. 식별자에 공백이나 특수 문자가 포함되면 전체 문자열을 큰따옴표로 묶어야 해요. 큰따옴표로 묶은 식별자는 대소문자를 구분해요.
사용 메모
- 테이블은 삭제 시점에 테이블을 포함하고 있던 데이터베이스와 스키마에만 복원할 수 있어요. 예를 들어 스키마 s1에서 테이블 t1을 만들고 드롭한 후, 현재 스키마를 s2로 변경하고 테이블 t1을 ID(또는 정규화된 이름 s1.t1)로 복원하려 하면, 테이블 t1은 현재 스키마 s2가 아니라 스키마 s1에 복원돼요.
- 같은 이름의 테이블이 이미 존재하면 오류가 반환돼요.
- 같은 이름의 드롭된 테이블이 여러 개 있으면 TABLES 뷰의 시스템 생성 식별자와 함께 IDENTIFIER 키워드를 사용해 복원할 테이블을 지정할 수 있어요. 복원된 테이블의 이름은 동일하게 유지돼요. 예제 참고.
- 노트북, 테이블, 블록 스토리지 스냅샷, 스키마, 데이터베이스에 대한 UNDROP 명령을 실행할 때만 시스템 생성 식별자를 IDENTIFIER() 키워드와 함께 사용할 수 있어요.
- UNDROP은 Snowflake Time Travel 기능에 의존해요. 객체는 데이터 보존 기간 안에 삭제된 경우에만 복원할 수 있어요. 기본값은 24시간이에요.
- 하이브리드 테이블은 언드롭할 수 없어요.
예제
기본 예제
드롭된 테이블의 가장 최근 버전 복원(DROP TABLE 예제를 기반으로 함):
UNDROP TABLE t2;
+---------------------------------+
| status |
|---------------------------------|
| Table T2 successfully restored. |
+---------------------------------+
테이블 ID를 사용한 UNDROP table
IDENTIFIER()를 사용해 ID로 드롭된 테이블을 복원해요. 언드롭할 특정 테이블의 테이블 ID는 TABLES 뷰의 table_id 컬럼에서 찾을 수 있어요. 예를 들어 my_table이라는 드롭된 테이블이 여러 개 있고, 두 번째로 마지막에 드롭된 테이블 my_table을 복원하려면 다음 단계를 따르세요:
Account Usage TABLES 뷰에서 드롭된 테이블의 테이블 ID를 찾아요:
SELECT table_id,
table_name,
table_schema,
table_catalog,
created,
deleted,
comment
FROM SNOWFLAKE.ACCOUNT_USAGE.TABLES
WHERE table_catalog = 'DB1'
AND table_schema = 'S1'
AND table_name = 'MY_TABLE'
AND deleted IS NOT NULL
ORDER BY deleted;
+----------+------------+--------------+---------------+-------------------------------+-------------------------------+---------+
| TABLE_ID | TABLE_NAME | TABLE_SCHEMA | TABLE_CATALOG | CREATED | DELETED | COMMENT |
|----------+------------+--------------+---------------+-------------------------------+-------------------------------+---------|
| 408578 | MY_TABLE | S1 | DB1 | 2024-07-01 15:39:07.565 -0700 | 2024-07-01 15:40:28.161 -0700 | NULL |
+----------+------------+--------------+---------------+-------------------------------+-------------------------------+---------+
| 408607 | MY_TABLE | S1 | DB1 | 2024-07-01 17:43:07.565 -0700 | 2024-07-01 17:44:28.161 -0700 | NULL |
+----------+------------+--------------+---------------+-------------------------------+-------------------------------+---------+
테이블 ID로 my_table을 언드롭해요. 두 번째로 마지막에 삭제된 테이블을 복원하려면 이전 문 출력의 테이블 ID 408578을 사용해요. 다음 문을 실행하면 테이블이 원래 이름 my_table로 복원돼요:
UNDROP TABLE IDENTIFIER(408578);
더 알아보기 (Learn more)
- See also: CREATE TABLE, ALTER TABLE, DROP TABLE, SHOW TABLES, DESCRIBE TABLE