DROP TYPE
사용자가 직접 정의한 커스텀 타입(custom type)을 데이터베이스에서 제거하는 DROP TYPE 문이에요. Turso 전용 확장 기능이라 실험적(experimental) 단계라는 점만 기억하면 사용법 자체는 아주 간단해요.
출처: 문서
본문
**Turso 확장**: DROP TYPE은 표준 SQLite에는 없는 Turso 전용 문장이에요. 이 기능은 실험적이며 사용 전에 [활성화](/sql-reference/experimental-features)해야 해요.DROP TYPE 문은 사용자가 정의한 커스텀 타입을 데이터베이스에서 제거해요. 타입이 제거되고 나면 그 타입 이름을 새 컬럼 정의에 더 이상 사용할 수 없어요.
Syntax
DROP TYPE [IF EXISTS] type-name;
Description
DROP TYPE은 지정한 커스텀 타입을 데이터베이스에서 제거해요. IF EXISTS 절을 지정하지 않았다면 해당 타입이 반드시 존재해야 해요.
Clauses
| Clause | Description |
|---|---|
IF EXISTS |
타입이 존재하지 않을 때 발생할 오류를 무시해요. 타입을 찾지 못하면 문장은 아무 작업도 하지 않아요. |
type-name |
제거할 커스텀 타입의 이름이에요. |
Restrictions
어떤 테이블 컬럼이 해당 타입을 사용하고 있는 동안에는 타입을 제거할 수 없어요. 타입을 제거하려면 그 타입의 모든 컬럼을 없애거나 테이블 자체를 먼저 삭제해야 해요.
CREATE TYPE cents BASE integer ENCODE value * 100 DECODE value / 100;
CREATE TABLE prices (
id INTEGER PRIMARY KEY,
amount cents
) STRICT;
-- 'prices' 테이블에 'cents' 타입 컬럼이 있어서 실패해요
DROP TYPE cents;
-- Error: type 'cents' is in use
-- 테이블을 먼저 삭제한 다음 타입을 삭제해요
DROP TABLE prices;
DROP TYPE cents;
Examples
Drop a Custom Type
CREATE TYPE reversed_text BASE text
ENCODE turso_reverse(value)
DECODE turso_reverse(value);
DROP TYPE reversed_text;
Drop a Type with IF EXISTS
-- 타입이 존재하지 않아도 안전하게 실행돼요
DROP TYPE IF EXISTS reversed_text;
See Also
- CREATE TYPE for defining custom types
- DROP DOMAIN for removing domains
- Data Types for an overview of the type system
더 알아보기 (Learn more)
- CREATE TYPE - 커스텀 타입을 정의하는 방법
- DROP DOMAIN - 도메인을 제거하는 방법
- Data Types - 타입 시스템 전체 개요
- Experimental Features - 실험적 기능 활성화 방법