UUID 数据类型

UUID 数据类型用于存储通用唯一标识符 (UUIDs)。UUID 是唯一标识信息的 128 位二进制值。每个 UUID 值为全局唯一,这意味着两个不同的系统几乎不可能各自生成完全相同的 UUID。但是,唯一性取决于 UUID 值的生成方式,并且 Snowflake UUID 数据类型本身不保证唯一性。例如,用户可以准确无误地多次插入相同的 UUID 值。

UUID 值采用 UUID 格式,是 36 个字符的十六进制数字字符串,用连字符分隔,模式为 8-4-4-4-12。例如,f353ca91-4fc5-49f2-9b9e-304f83d11914 是采用 UUID 格式的字符串。

有关 UUID 数据类型的更多信息,请参阅 通用唯一标识符 (link removed) 维基百科文章。

以下注意事项适用于 UUID 数据类型:

  • Snowflake 驱动程序 将 UUID 值视为文本字符串。

  • UUID 的 ANSI 字面量形式可以作为输入。

  • 任何版本的 UUID 值都可以插入到表中。

  • UUID 值不区分大小写。

指定 UUID 数据类型。

  • 若要指定 UUID 类型,请使用以下语法:

    <column_name> UUID
    
    Copy

    其中:

    • column_name 是表中列的名称。

UUID 数据类型的限制

以下限制适用于 UUID 数据类型:

  • UUID 值不能存储为 半结构化数据类型结构化数据类型 的值。

    要将 UUID 值作为这些类型的值中的字符串进行存储,您可以将 UUID 值 转换 为 VARCHAR 值。

  • 在使用非 SQL 语言(例如 Python 或 Java)编写的存储过程或用户定义函数 (UDFs) 中,不支持 UUID 数据类型。

  • Snowpark 不支持 UUID 数据类型。

  • 以下功能不支持 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. 在表中插入值并省略 id 列,以便自动生成并插入 UUID 值:

    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       |
    +--------------------------------------+---------------+
    
语言: 中文