Tipo de dados UUID

O tipo de dados UUID armazena identificadores universais exclusivos (Universally Unique Identifiers, UUIDs). Um UUID é um valor binário de 128 bits que identifica exclusivamente as informações. Cada valor UUID foi projetado para ser globalmente exclusivo, o que significa que há uma probabilidade muito baixa de que dois sistemas diferentes gerem exatamente o mesmo UUID de forma independente. Entretanto, a exclusividade depende de como os valores UUID são gerados, e o tipo de dados UUID do Snowflake sozinho não garante a exclusividade. Por exemplo, um usuário pode inserir o mesmo valor UUID várias vezes sem erros.

Os valores UUID estão no formato UUID, que é uma cadeia de 36 dígitos hexadecimais, separados por hifens, no padrão 8-4-4-4-12. Por exemplo, f353ca91-4fc5-49f2-9b9e-304f83d11914 é uma cadeia de caracteres no formato UUID.

Para obter mais informações sobre o tipo de dados UUID, consulte o artigo da Wikipédia Identificador único universal.

As seguintes considerações se aplicam ao tipo de dados UUID:

  • Os drivers Snowflake tratam os valores UUID como cadeias de caracteres de texto.

  • A forma literal ANSI do UUID é aceita como entrada.

  • É possível inserir valores UUID de qualquer versão em tabelas.

  • Os valores UUID não diferenciam maiúsculas de minúsculas.

Especificar um tipo de dados UUID

  • Para especificar um tipo de UUID, use a seguinte sintaxe:

    <column_name> UUID
    
    Copy

    Onde:

    • column_name é o nome de uma coluna em uma tabela.

Limitações do tipo de dados UUID

As seguintes limitações se aplicam ao tipo de dados UUID:

  • Um valor UUID não pode ser armazenado em um valor de tipo de dados semiestruturados ou de tipo de dados estruturados.

    Para armazenar um valor UUID como uma cadeia de caracteres em um valor de um desses tipos, você pode converter o valor UUID em um valor VARCHAR.

  • O tipo de dados UUID não é compatível com procedimentos armazenados ou funções definidas pelo usuário (User-Defined Functions, UDFs) escritas em uma linguagem diferente de SQL, como Python ou Java.

  • O tipo de dados UUID não é compatível com o Snowpark.

  • Os seguintes recursos não são compatíveis com o tipo de dados UUID:

Exemplos para o tipo de dados UUID

Os exemplos a seguir inserem valores UUID em tabelas:

Inserir um valor UUID em uma tabela

  • Crie uma tabela com uma coluna de tipo UUID e insira um valor UUID:

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

Gerar automaticamente valores UUID quando você inserir linhas em uma tabela

O exemplo a seguir mostra como gerar automaticamente valores UUID quando você insere linhas em uma tabela:

  1. Crie uma tabela que use a função UUID_STRING para gerar um valor UUID para cada linha inserida na tabela:

    CREATE OR REPLACE TABLE sample_generate_uuid (
      id UUID DEFAULT UUID_STRING() NOT NULL,
      sample_column VARCHAR);
    
    Copy
  2. Insira valores na tabela e omita a coluna id para que um valor UUID seja gerado e inserido automaticamente:

    INSERT INTO sample_generate_uuid (sample_column) VALUES
      ('value_a'),
      ('value_b');
    
    Copy
  3. Consulte a tabela para visualizar os valores UUID gerados:

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