相当于 PostgreSQL 中的 UNIQUE IDENTIFIER

Pra*_*tik 1 postgresql uuid sqldatatypes

我试图从 MSSQL 切换到 PostgreSQL,因此尝试将查询转换为等效的 PostgreSQL。但是,运行 PostgreSQL 查询时出现错误:

错误:类型“唯一标识符”不存在第 3 行:ID UNIQUEIDENTIFIER DEFAULT UUID_GENERATE_V4()::VARCHAR NO... ^ SQL 状态:42704 字符:38

MSSQL

CREATE TABLE [dbo].[ISS_AUDIT]
(
  [ID] UNIQUEIDENTIFIER DEFAULT NEWID() NOT NULL,
  [GRAPH_ID] [varchar](196)
  PRIMARY KEY(ID)
);
Run Code Online (Sandbox Code Playgroud)

PostgreSQL

CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

CREATE TABLE public.ISS_AUDIT
(
  ID UNIQUEIDENTIFIER DEFAULT UUID_GENERATE_V4()::VARCHAR NOT NULL,
  GRAPH_ID VARCHAR(196),
  PRIMARY KEY(ID)
);
Run Code Online (Sandbox Code Playgroud)

我在UNIQUEIDENTIFIER上遗漏了什么 吗?

Tec*_*ree 5

这是正确的脚本:

CREATE TABLE public.ISS_AUDIT
(
  ID uuid PRIMARY KEY DEFAULT UUID_GENERATE_V4(),
  GRAPH_ID VARCHAR(196)
);
Run Code Online (Sandbox Code Playgroud)

请参阅此链接。提炼:

SQL Server 调用类型 UniqueIdentifier,PostgreSQL 调用类型 uuid。两种类型都占用 16 字节的存储空间。出于与其他软件或数据库的兼容性原因,许多使用它们的一些标准化文本表示,特别是用于传输而不是使用本机类型。