Showing posts with label automation. Show all posts
Showing posts with label automation. Show all posts

Sunday, 20 August 2023

How To Call A Stored Procedure/Function From A Trigger Function In Postg...


In this tutorial, you will learn how to call a stored procedure or function from a trigger function in PostgreSQL. This video is designed for developers and database administrators who want to automate tasks or enforce business rules by leveraging the power of triggers in PostgreSQL. We'll begin by explaining what triggers are and how they work within a PostgreSQL database. Next, we'll walk you through the process of creating a trigger function that can invoke a stored procedure or function whenever a specific event occurs in your database, such as an insert, update, or delete operation. You'll see practical examples and gain insights into how this powerful feature can enhance your database applications. By the end of this tutorial, you'll be confident in your ability to implement triggers that call stored procedures or functions, adding a new level of automation and functionality to your PostgreSQL projects.

PostgreSQL triggers, stored procedure PostgreSQL, function PostgreSQL, call stored procedure from trigger, PostgreSQL tutorial, trigger function PostgreSQL, PostgreSQL automation, database triggers, SQL tutorial, PostgreSQL functions, PostgreSQL stored procedures, PostgreSQL 16, SQL triggers, PostgreSQL trigger examples, database management, PostgreSQL development, SQL server, trigger stored procedure, PostgreSQL database, PostgreSQL trigger function tutorial

Please Like, Comment, and Subscribe to my channel. ❤

Working with triggers is fun and learning. There are endless possibilities that can be achieved through Triggers.

This time, I have explained the usage of Triggers to call other stored procedures or functions in PostgreSQL Trigger Functions.


#trigger #procedure #function #postgresql #database


CREATE TABLE students
(
    roll numeric(10,0),
    name character varying(30),
    course character varying(30)
);


CREATE OR REPLACE PROCEDURE 
trigger_proc(in_value1 IN numeric, in_value2 IN numeric, out_result OUT numeric)
LANGUAGE 'plpgsql'
AS $BODY$
Declare
lv_msg CHARACTER varying(100);
Begin
  out_result := in_value1 + in_value2;
exception
when others then
lv_msg := 'Error : '||sqlerrm;
raise notice '%',lv_msg;
end;
$BODY$;


CREATE OR REPLACE FUNCTION 
trigger_func(in_value1 IN numeric, in_value2 IN numeric) returns numeric
LANGUAGE 'plpgsql'
AS $BODY$
Declare
lv_msg CHARACTER varying(100);
out_result numeric (10);
Begin
  out_result := in_value1 + in_value2;
return out_result;
exception
when others then
lv_msg := 'Error :'||sqlerrm;
raise notice '%',lv_msg;
end;
$BODY$;


CREATE OR REPLACE FUNCTION student_logs_trg_func()
    RETURNS TRIGGER
    LANGUAGE 'plpgsql'
AS $BODY$
declare
lv_out_proc numeric(10);
lv_out_func numeric(10);
begin
call trigger_proc(50, 50, lv_out_proc);
lv_out_func := trigger_func(100, 100);
raise notice 'Proc Output: %',lv_out_proc;
raise notice 'Func Output: %',lv_out_func;
return new;
end;
$BODY$;


CREATE TRIGGER student_trg
    BEFORE INSERT OR DELETE OR UPDATE 
    ON students
    FOR EACH ROW
    EXECUTE FUNCTION student_logs_trg_func();

Insert into students values (1, 'Akram', 'MCA');


How To Call A Stored Procedure/Function From A Trigger Function In PostgreSQL
How To Call A Stored Procedure From A Trigger Function
Trigger Function In PostgreSQL
How To Call Stored Function From Trigger Function
Trigger In PostgreSQL
Call Procedure From Trigger
Call Function From Trigger
Procedure Call From Trigger In PostgreSQL
Function Call From Trigger In PostgreSQL
PostgreSQL Triggers
Triggers
Trigger Example PostgreSQL
How To Triggers PostgreSQL

Sunday, 23 July 2023

Why pgAgent Job Is Not Working || How To Check pgAgent Job Working Or No...



Are your pgAgent jobs in PostgreSQL not working as expected? This video is designed to help you diagnose and resolve issues related to pgAgent job failures. We walk you through the most common reasons why pgAgent jobs might not be running and provide detailed steps on how to check their status using pgAdmin.

First, we explore the various factors that can cause pgAgent jobs to fail, such as configuration errors, permission issues, and server-side problems. Then, we demonstrate how to verify whether your jobs are running correctly by inspecting job logs, job schedules, and job definitions.

Additionally, this tutorial offers troubleshooting tips to fix common issues and ensure that your jobs execute reliably. We also share best practices for monitoring and maintaining your pgAgent jobs, so you can automate your PostgreSQL tasks with confidence.

Whether you're a database administrator, developer, or PostgreSQL enthusiast, this video will equip you with the knowledge you need to keep your pgAgent jobs running smoothly.


pgAgent job not working, check pgAgent job, PostgreSQL pgAgent, troubleshoot pgAgent job, pgAdmin job scheduling, pgAgent job failure, pgAgent troubleshooting, PostgreSQL automation, pgAgent best practices, PostgreSQL job monitoring
Please Like, Comment, and Subscribe to my channel. ❤


create table test_job (id numeric, time_stamp timestamp default current_timestamp);

SELECT * FROM test_job;

delete FROM test_job;

call public.testing_job_proc();

CREATE OR REPLACE PROCEDURE public.testing_job_proc()
LANGUAGE 'plpgsql'
AS $BODY$
DECLARE
lv_id numeric;
BEGIN
begin
select coalesce(max(id),0)+1 into lv_id from test_job;
exception when others then 
lv_id := 0;
end;
Insert into test_job(id) values(lv_id);
END;
$BODY$;


DO $$
DECLARE
    jid integer;
    scid integer;
BEGIN
-- Creating a new job
INSERT INTO pgagent.pga_job(
    jobjclid, jobname, jobdesc, jobhostagent, jobenabled
) VALUES (
    1::integer, 'Test_Job'::text, 'Test Job'::text, ''::text, true
) RETURNING jobid INTO jid;

-- Steps
-- Inserting a step (jobid: NULL)
INSERT INTO pgagent.pga_jobstep (
    jstjobid, jstname, jstenabled, jstkind,
    jstconnstr, jstdbname, jstonerror,
    jstcode, jstdesc
) VALUES (
    jid, 'Step1'::text, true, 's'::character(1),
    ''::text, 'postgres'::name, 'f'::character(1),
    'call public.testing_job_proc();'::text, 'Step1 Test Job Proc'::text
) ;

-- Schedules
-- Inserting a schedule
INSERT INTO pgagent.pga_schedule(
    jscjobid, jscname, jscdesc, jscenabled,
    jscstart, jscend,    jscminutes, jschours, jscweekdays, jscmonthdays, jscmonths
) VALUES (
    jid, 'Scheduler1'::text, ''::text, true,
    '2023-07-23 20:00:00+05:30'::timestamp with time zone, '2023-07-31 20:00:00+05:30'::timestamp with time zone,
    -- Minutes
    '{t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t}'::bool[]::boolean[],
    -- Hours
    '{t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t}'::bool[]::boolean[],
    -- Week days
    '{t,t,t,t,t,t,t}'::bool[]::boolean[],
    -- Month days
    '{t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t}'::bool[]::boolean[],
    -- Months
    '{t,t,t,t,t,t,t,t,t,t,t,t}'::bool[]::boolean[]
) RETURNING jscid INTO scid;
END
$$;

Sunday, 12 June 2022

How To Schedule A Job Using pgAgent Jobs In PostgreSQL Database Using pg...


In this tutorial, we explore the powerful job scheduling capabilities of pgAgent within PostgreSQL, a crucial tool for automating routine tasks and maintaining database efficiency. PgAgent allows you to schedule jobs that can execute various database operations, such as backups, maintenance tasks, or running stored procedures, all within a specific time frame or on a recurring basis.

The video begins by guiding you through the installation and configuration of pgAgent within pgAdmin, ensuring that your environment is set up correctly to start automating tasks. We then delve into the core process of creating a new job, from defining the job steps to setting up the schedule that determines when and how often the job will run.

Throughout the tutorial, we provide practical examples of common tasks that can be automated using pgAgent Jobs, such as database backups and maintenance operations. You’ll also learn how to monitor and manage these jobs within pgAdmin, including how to check job logs for success or failure, and how to troubleshoot any issues that might arise.

Moreover, we discuss best practices for optimizing job schedules to ensure that they run efficiently without impacting database performance. This includes tips on setting appropriate execution times, handling job dependencies, and using job categories to organize your scheduled tasks.

By the end of this video, you will have a solid understanding of how to schedule and manage jobs using pgAgent in PostgreSQL, enabling you to automate critical database operations and improve overall productivity.

PostgreSQL pgAgent, schedule job PostgreSQL, pgAdmin job scheduling, PostgreSQL automation, pgAgent tutorial, PostgreSQL database management, automate PostgreSQL tasks, SQL job scheduler, PostgreSQL tutorial, database maintenance automation


first, lets create a table.

Now, I will schedule a job and insert record into the table through
scheduler

I scheduled it to run it from 9:05 PM, currently I am at 09:00 PM

It is 09:03 PM now, and 2 minutes remaining...
Let's check if there is any data or not.
There should be no record now.

Here we can see the records are inserted...

In the next video, I will show

How to perform some complex operations through a scheduled job 
in PostgreSQL

Subscribe my channel....

create table emp(id numeric, name character(30),salary numeric);

select * from emp;