PostgreSQL usa las variables de tipo Fila para almacenar una fila completa de un conjunto de resultados devuelto por la instrucción select into .
Declaración :
Podemos declarar una variable de tipo de fila que tenga el mismo tipo de datos que el tipo de datos correspondiente en la fila de la tabla o la vista usando la siguiente sintaxis:
Syntax : row_variable table_name/view_name %ROWTYPE;
Podemos usar la notación de punto (.) para acceder a cualquier campo de la variable de fila.
Syntax : row_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:
Lo siguiente ayudará a crear una variable de tipo de fila sel_employee de la tabla empleados
do $$ declare sel_employee employees%rowtype; begin -- select employee with id 6 select * from employees into sel_employee where employee_id = 6; raise notice 'The employee name is % and the manager id is %', sel_employee.full_name, sel_employee.manager_id; end; $$;
Salida :
Ejemplo 2:
Lo siguiente ayudará a crear una variable de tipo de fila sel_employee de la tabla empleados con 2 columnas employee_id y full_name
do $$ declare sel_employee employees%rowtype; begin -- select employee with id 12 select employee_id,full_name from employees into sel_employee where employee_id = 12; raise notice 'The employee name is % and the length of the name is %', sel_employee.full_name, length(sel_employee.full_name); end; $$;
Salida :
Publicación traducida automáticamente
Artículo escrito por ashutoshrathi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA