如何获取 select 查询的结果并将其作为输入传递给函数 Postgresql 中的删除查询

how to get the result of the select query and pass it as a input to delete query in Function Postgresql

CREATE OR REPLACE FUNCTION test(name VARCHAR (255))

RETURNS INTEGER AS

$BODY$

DECLARE

emp_id INTEGER;

BEGIN
 SELECT employee.employee_id into emp_id from employee where first_name = name;
 
 DELETE FROM employee WHERE employee_id = emp_id;

 return emp_id;

END

$BODY$

LANGUAGE plpgsql;

当我调用该函数时,它删除了我员工中的所有记录 table。

首先将给定输入的值存储在变量中,然后使用此变量和 return 此变量执行删除命令。

-- PostgreSQL
-- create table and store data
create table employee (emp_id int, name varchar(255));
insert into employee values (1, 'Rahul'), (2, 'Biswas'), (3, 'Shuva');

-- create function
CREATE OR REPLACE FUNCTION test(p_name varchar(255))

RETURNS INTEGER AS

$BODY$

DECLARE v_emp_id INTEGER;

BEGIN
 SELECT e.emp_id into v_emp_id from employee e where e.name = p_name;
 
 DELETE FROM employee WHERE emp_id = v_emp_id;

 return v_emp_id;

END

$BODY$

LANGUAGE plpgsql;

-- execute function
select * from test('Rahul');

请检查这个urlhttps://dbfiddle.uk/?rdbms=postgres_11&fiddle=4c134787dafd8fe58b032d700168318d