UUID es una abreviatura de Universal Unique Identifier definido por RFC 4122 y tiene un tamaño de 128 bits. Se crea utilizando algoritmos internos que siempre generan un valor único.
PostgreSQL tiene su propio tipo de datos UUID y proporciona módulos para generarlos. UUID generalmente se usa en sistemas distribuidos ya que garantiza una singularidad mejor que el tipo de datos SERIAL que produce solo valores singulares dentro de una única base de datos.
PostgreSQL le permite almacenar y comparar valores UUID pero no incorpora funciones para producir los valores UUID en su núcleo. En cambio, depende de los módulos de terceros que ofrecen ciertos algoritmos para generar UUID. Por ejemplo, el uuid-ossp
módulo ofrece algunas funciones prácticas que llevan a cabo algoritmos estándar para generar UUID.
Para instalar la extensión «uuid-ossp», use el siguiente comando:
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
Para generar valores UUID basados en la combinación de la dirección MAC de la computadora, la marca de tiempo actual y un valor aleatorio, la uuid_generate_v1()
función se puede usar como se muestra a continuación:
SELECT uuid_generate_v1();
Daría como resultado una salida similar a la imagen a continuación:
Para generar un valor UUID basado únicamente en números aleatorios, la uuid_generate_v4()
función se puede usar como se muestra a continuación:
SELECT uuid_generate_v4();
Daría como resultado una salida similar a la imagen a continuación:
Ejemplo:
En este ejemplo, crearemos una tabla cuya clave principal es un tipo de datos UUID. Además, los valores de la columna de clave principal se producirán automáticamente a través de la uuid_generate_v4()
función.
Primero, cree una tabla de contactos usando la siguiente declaración:
CREATE TABLE contacts ( contact_id uuid DEFAULT uuid_generate_v4 (), first_name VARCHAR NOT NULL, last_name VARCHAR NOT NULL, email VARCHAR NOT NULL, phone VARCHAR, PRIMARY KEY (contact_id) );
Ahora insertamos algunos datos en nuestra tabla de contactos como se muestra a continuación:
INSERT INTO contacts ( first_name, last_name, email, phone ) VALUES ( 'Raju', 'Kumar', 'rajukumar@gmail.com', '408-237-2345' ), ( 'Nikhil', 'Aggarwal', 'nikhilaggarwal@gmail.com', '408-237-2344' ), ( 'Anshul', 'Aggarwal', 'anagg@hotmail.com', '408-237-2343' );
Ahora consultamos todas las filas en la tabla de contactos usando el siguiente comando:
SELECT * FROM contacts;
Producción:
Publicación traducida automáticamente
Artículo escrito por RajuKumar19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA