PostgreSQL: variable de tipo de registro

PostgreSQL usa variables de tipo de registro que simplemente actúan como marcadores de posición para las filas de un conjunto de resultados, similar a una variable de tipo de fila . Sin embargo, a diferencia de las variables de tipo fila, no tienen una estructura predefinida. Su estructura solo se determina después de asignarles una fila. Una variable de tipo de registro también puede cambiar su estructura después de que se reasigna a otra fila.

Declaración:

Podemos declarar una variable de tipo de registro simplemente usando un nombre de variable seguido de la palabra clave de registro .

Syntax:
variable_name record;

Podemos usar la notación de punto (.) para acceder a cualquier campo de la variable de tipo de registro. Es importante tener en cuenta que debemos asignar una variable de tipo de registro antes de acceder a su contenido, de lo contrario, obtendremos un error.

Syntax:
record_variable.field_name;

Primero, creamos una tabla de muestra usando los siguientes comandos para realizar ejemplos:

CREATE TABLE employees (
employee_id serial PRIMARY KEY,
full_name VARCHAR NOT NULL,
manager_id INT
);

Luego insertamos datos en nuestra tabla de empleados de la siguiente manera:

INSERT INTO employees (
employee_id,
full_name,
manager_id
)
VALUES
(1, 'M.S Dhoni', NULL),
(2, 'Sachin Tendulkar', 1),
(3, 'R. Sharma', 1),
(4, 'S. Raina', 1),
(5, 'B. Kumar', 1),
(6, 'Y. Singh', 2),
(7, 'Virender Sehwag ', 2),
(8, 'Ajinkya Rahane', 2),
(9, 'Shikhar Dhawan', 2),
(10, 'Mohammed Shami', 3),
(11, 'Shreyas Iyer', 3),
(12, 'Mayank Agarwal', 3),
(13, 'K. L. Rahul', 3),
(14, 'Hardik Pandya', 4),
(15, 'Dinesh Karthik', 4),
(16, 'Jasprit Bumrah', 7),
(17, 'Kuldeep Yadav', 7),
(18, 'Yuzvendra Chahal', 8),
(19, 'Rishabh Pant', 8),
(20, 'Sanju Samson', 8);

La mesa es:

Ejemplo 1:

La siguiente consulta muestra cómo podemos usar variables de tipo de registro en conjeturas con la instrucción select into .

do
$$
declare
rec1 record;
begin
-- select the employee  
select employee_id,full_name,manager_id
into rec1
from employees
where employee_id = 13;
 
raise notice '% - %(Manager id=%)', rec1.employee_id, rec1.full_name, rec1.manager_id;    
 
end;
$$
language plpgsql;

Salida :

En este ejemplo, seguimos los siguientes pasos:

  • Primero declaramos la variable de tipo de registro rec1 en el área de declaración.
  • Luego usamos la selección en la declaración para seleccionar una fila de la tabla empleados en la variable rec1 cuya identificación de empleado es 13.
  • Luego usamos la notación de puntos para acceder al contenido de la variable rec1 y luego imprimimos la información

Ejemplo 2:

La siguiente consulta muestra cómo podemos usar variables de tipo de registro en conjetura con la declaración de bucle for .

do
$$
declare
rec1 record;
begin
for rec1 in select employee_id, full_name  
  from employees  
  where employee_id > 12
  order by employee_id
loop
 raise notice '% - %', rec1.employee_id, rec1.full_name;  
end loop;
end;
$$;

Producción:

Este ejemplo muestra cómo podemos reasignar una variable de tipo de registro.

En este ejemplo, seguimos los siguientes pasos:

  • Primero declaramos una variable de tipo de registro rec1 en el área de declaración.
  • Luego usamos la declaración de bucle for para iterar sobre el contenido de la tabla de empleados. En cada iteración, asignamos una nueva fila a la variable de tipo de registro rec1 .
  • Luego usamos la notación de puntos para acceder al contenido de la variable rec1 y luego imprimimos la información para cada iteración.

Publicación traducida automáticamente

Artículo escrito por ashutoshrathi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *