Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 47 additions & 61 deletions functionsProcedures.sql
Original file line number Diff line number Diff line change
@@ -1,73 +1,59 @@
SELECT * from employees;
SELECT count(*) from employees;


CREATE or replace Function emp_count()
RETURNS void
LANGUAGE SQL
as
$$
DELETE FROM employees WHERE employee_id = 30;
$$;



CREATE or replace Function delete_emp()
RETURNS void
LANGUAGE SQL
as
$$
DELETE FROM employees WHERE employee_id = 30;
$$;

SELECT delete_emp();


CREATE or replace Function delete_emp_by_id(p_emp_id int)
RETURNS void
-- ===============================
-- View employees
-- ===============================
SELECT * FROM employees;
SELECT COUNT(*) FROM employees;

-- ===============================
-- Function: Delete a specific employee by ID (SQL language)
-- ===============================
CREATE OR REPLACE FUNCTION delete_employee_by_id(p_emp_id INT)
RETURNS VOID
LANGUAGE SQL
as
$$
AS $$
DELETE FROM employees WHERE employee_id = p_emp_id;
$$;

SELECT delete_emp_by_id(29)
-- Example call
SELECT delete_employee_by_id(30);

CREATE Procedure remove_emp_var()
-- ===============================
-- Procedure: Delete a specific employee using variable (PLpgSQL)
-- ===============================
CREATE OR REPLACE PROCEDURE remove_employee_by_id(p_emp_id INT)
LANGUAGE plpgsql
AS
$$
DECLARE
test_var int;
BEGIN
SELECT employee_id INTO test_var from employees WHERE employee_id = 26;
DELETE FROM employees WHERE employee_id = test_var;
END
AS $$
DECLARE
emp_to_delete INT;
BEGIN
-- Store the employee ID to delete into variable
SELECT employee_id INTO emp_to_delete FROM employees WHERE employee_id = p_emp_id;

-- Delete employee
DELETE FROM employees WHERE employee_id = emp_to_delete;

-- Feedback
RAISE NOTICE 'Employee % removed successfully!', emp_to_delete;
END
$$;

call remove_emp_var();
-- Example call
CALL remove_employee_by_id(25);

CREATE Procedure remove_emp_by_id(p_emp_id int)
-- ===============================
-- Procedure: Delete employee using local variable without parameters
-- ===============================
CREATE OR REPLACE PROCEDURE remove_emp_var()
LANGUAGE plpgsql
AS
$$
DECLARE
test_var int;
BEGIN
SELECT employee_id INTO test_var from employees WHERE employee_id = p_emp_id;
DELETE FROM employees WHERE employee_id = test_var;

RAISE NOTICE 'Employee removed successfully!';
END
AS $$
DECLARE
emp_to_delete INT;
BEGIN
SELECT employee_id INTO emp_to_delete FROM employees WHERE employee_id = 26;
DELETE FROM employees WHERE employee_id = emp_to_delete;
RAISE NOTICE 'Employee % removed successfully!', emp_to_delete;
END
$$;


CALL remove_emp_by_id(25)








-- Example call
CALL remove_emp_var();