Oracle 中的 UUID 数据类型

问题描述 投票:0回答:1

我需要更改下表的规格:

CREATE TABLE STAGE.STG_AAA_PROFILES
(
  SUBSCRIBER         INTEGER,
  USERNAME           VARCHAR2(50 BYTE),
  GROUP_ID           INTEGER,
  PROFILE_ID         INTEGER,
  STATUS             INTEGER,
  PASSWORD_TYPE      INTEGER,
  EXPIRATION         DATE
)

我必须让它看起来像:

CREATE TABLE STAGE.STG_AAA_PROFILES
(
  SUBSCRIBER         UID,
  USERNAME           VARCHAR2(50 BYTE),
  GROUP_ID           INTEGER,
  PROFILE_ID         UID,
  STATUS             INTEGER,
  PASSWORD_TYPE      INTEGER,
  EXPIRATION         DATE
)

如何更改表以将整数替换为 UID 数据类型???

sql oracle uuid
1个回答
4
投票

Oracle 没有 UUID 数据类型。

使用:

  • VARCHAR2(36)
    将 UUID 存储为格式化的十六进制字符串(32 个十六进制字符和 4 个破折号);或
  • RAW(16)
    将 UUID 存储为 16 字节(128 位)。

如何更改表以将整数替换为 UID 数据类型?

ALTER TABLE STAGE.STG_AAA_PROFILES ADD subscriber_uuid VARCHAR2(36);

然后将现有的

subscriber
列从整数转换为UUID或为表中的行生成UUID。最后:

ALTER TABLE STAGE.STG_AAA_PROFILES DROP COLUMN subscriber;
ALTER TABLE STAGE.STG_AAA_PROFILES RENAME COLUMN subscriber_uuid TO subscriber;
© www.soinside.com 2019 - 2024. All rights reserved.