UUID 데이터 타입

UUID 데이터 타입은 범용 고유 식별자(UUIDs)를 저장합니다. UUID는 정보를 고유하게 식별하는 128비트 이진 값입니다. 각 UUID 값은 전역적으로 고유하도록 설계되었습니다. 즉, 서로 다른 두 시스템이 정확히 동일한 UUID를 독립적으로 생성할 확률이 매우 낮습니다. 그러나 고유성은 UUID 값이 생성되는 방식에 따라 달라지며, Snowflake UUID 데이터 타입 자체는 고유성을 보장하지 않습니다. 예를 들어, 사용자는 동일한 UUID 값을 오류 없이 여러 번 삽입할 수 있습니다.

UUID 값은 UUID 형식으로, 8-4-4-4-12 패턴에서 하이픈으로 구분된 16진수 숫자로 구성된 36자 문자열입니다. 예를 들어, ``f353ca91-4fc5-49f2-9b9e-304f83d11914``는 UUID 형식의 문자열입니다.

UUID 데이터 타입에 대한 자세한 내용은 Wikipedia 문서의 `범용 고유 식별자 <https://en.wikipedia.org/wiki/Universally_unique_identifier>`_를 참조하세요.

UUID 데이터 타입에 적용되는 고려 사항은 다음과 같습니다.

  • :doc:`Snowflake 드라이버 </developer-guide/drivers>`는 UUID 값을 텍스트 문자열로 처리합니다.

  • UUID의 ANSI 리터럴 형식은 입력으로 지원됩니다.

  • 모든 버전의 UUID 값을 테이블에 삽입할 수 있습니다.

  • UUID 값은 대/소문자를 구분하지 않습니다.

UUID 데이터 타입을 지정합니다.

  • UUID 타입을 지정하려면 다음 구문을 사용합니다.

    <column_name> UUID
    
    Copy

    여기서

    • :samp:`{column_name}`은 테이블에 있는 열의 이름입니다.

UUID 데이터 타입에 대한 제한 사항

UUID 데이터 타입에는 다음과 같은 제한 사항이 적용됩니다.

  • UUID 값은 반정형 데이터 타입 또는 :doc:`정형 데이터 타입 </sql-reference/data-types-structured>`의 값으로 저장할 수 없습니다.

    UUID 값을 이러한 타입 중 한 값의 문자열로 저장하기 위해 UUID 값을 VARCHAR 값으로 :doc:`캐스트 </sql-reference/data-type-conversion>`할 수 있습니다.

  • UUID 데이터 타입은 저장 프로시저 또는 Python, Java와 같이 SQL 이외의 언어로 작성된 사용자 정의 함수(UDFs)에서는 지원되지 않습니다.

  • UUID 데이터 타입은 Snowflake에서 지원되지 않습니다.

  • 다음 기능은 UUID 데이터 타입을 지원하지 않습니다.

UUID 데이터 타입의 예

다음 예제에서는 UUID 값을 테이블에 삽입합니다.

테이블에 UUID 값 삽입

  • UUID 타입의 열이 있는 테이블을 생성하고 UUID 값을 삽입합니다.

    CREATE TABLE sample_uuid_table(uuid_col UUID);
    
    INSERT INTO sample_uuid_table VALUES ('c73d9175-0a1d-48c6-8d30-df165461328b');
    
    Copy

테이블에 행을 삽입할 때 자동으로 UUID 값 생성

다음 예제에서는 테이블에 행을 삽입할 때 자동으로 UUID 값을 생성하는 방법을 보여줍니다.

  1. UUID_STRING 함수를 사용하는 테이블을 생성하여 테이블에 삽입된 각 행의 UUID 값을 생성합니다.

    CREATE OR REPLACE TABLE sample_generate_uuid (
      id UUID DEFAULT UUID_STRING() NOT NULL,
      sample_column VARCHAR);
    
    Copy
  2. UUID 값이 자동으로 생성되고 삽입되도록 테이블에 값을 삽입하고 id 열을 생략합니다.

    INSERT INTO sample_generate_uuid (sample_column) VALUES
      ('value_a'),
      ('value_b');
    
    Copy
  3. 테이블을 쿼리하여 생성된 UUID 값을 확인합니다.

    SELECT * FROM sample_generate_uuid;
    
    Copy
    +--------------------------------------+---------------+
    | ID                                   | SAMPLE_COLUMN |
    |--------------------------------------+---------------|
    | f353ca91-4fc5-49f2-9b9e-304f83d11914 | value_a       |
    | da563283-e201-4744-b158-221dd204a61f | value_b       |
    +--------------------------------------+---------------+