Características
Para cada Banco de Dados, é usado seu tipo nativo para armazenar o valor criado.
- Para o MS-SQL Server: é utilizado o tipo "uniqueidentifier"
- Para o PostgreSQL é utilizado o tipo "uuid"
- Para o Oracle é utilizado o tipo RAW(16)
Cada registro inserido na tabela, caso não seja informado um valor para o campo usado como identificador único, será populado com um valor único obtido pelo SGDB.
- Para o MS-SQL Server, a constraint default do campo usa o valor retornado pela função NEWID
- Para o PosgtreSQL é utilizado o valor recuperado através da função uuid_generate_v4
- Para o Oracle é utilizado o valor recuperado através da função SYS_GUID
Observação: Todas as funções mencionadas acima são nativas de seus respectivos SGDBs.
A estrutura da tabela no Banco de Dados vai utilizar um tipo de dado que consome apenas 16 bytes e a aplicação AdvPL pode consultar ou mesmo atribuir um valor ao campo, usando:
- Uma string de 36 caracteres para MS-SQL Server e PostgreSQL (string UUID de 32 caracteres hexadecimais, divididos em 5 blocos com separadores '-' , agrupando 8-4-4-4-12 caracteres nessa ordem)
- Uma string de 32 bytes hexadecimais sem separadores para o Oracle