No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

PLPGSQL: Stored procedures

13/33
Recursos

Aportes 11

Preguntas 1

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Reg铆strate o inicia sesi贸n para participar.

  • Funciones 鈫 Son m谩s avanzadas. Regresan tipos de datos. Tienen m谩s flexibilidad. No son est谩ndar de SQL, se tiene que usar el lenguaje PLPGSQL.
  • Procedures 鈫 Integran l贸gica a la sentencias SQL. Se han ido incluyendo en el est谩ndar SQL. No regresan ning煤n valor.

Stored Procedure:

CREATE OR REPLACE PROCEDURE test_drpcreate_procedure()
LANGUAGE SQL
AS $$
	DROP TABLE IF EXISTS aaa;
	CREATE TABLE aaa (bbb char(5) CONSTRAINT firstkey PRIMARY KEY);
$$;
CALL test_drpcreate_procedure();

Function

CREATE OR REPLACE FUNCTION test_dropcreate_function()
RETURNS VOID
LANGUAGE plpgsql
AS $$
BEGIN
	DROP TABLE IF EXISTS aaa;
	CREATE TABLE aaa(bbb char(5) CONSTRAINT firstkey PRIMARY KEY, ccc char(5));
	DROP TABLE IF EXISTS aaab;
	CREATE TABLE aaab (bbba char(5) CONSTRAINT secondkey PRIMARY KEY,ccca char(5));
END
$$;
SELECT test_dropcreate_function();

PLPGSQL es un lenguaje ampliado derivado desde el SQL
pudiendo ejecutar codigo SQL estandar y funciones especificas de este lenguaje

Existen

  • Store procedures
    Integran l贸gica a la sentencias SQL. Se han ido incluyendo en el est谩ndar SQL. No regresan ning煤n valor.

  • Functions
    Son mas avanzadas estan hechas en el lenguaje de PLPGSQL, Regresan tipos de datos. Tienen m谩s flexibilidad. No son est谩ndar de SQL.

create [or replace] procedure procedure_name(parameter_list)
language plpgsql
as $$
declare
鈥 variable declaration
begin
鈥 stored procedure body
end; $$

PROCEDURE

CREATE OR REPLACE PROCEDURE test_drpcreate_procedure()
LANGUAGE SQL
AS $$
	DROP TABLE IF EXISTS aaa;
	CREATE TABLE aaa (bbb char(5) CONSTRAINT firstkey PRIMARY KEY)
$$;

CALL test_drpcreate_procedure();

FUNCTION

CREATE OR REPLACE FUNCTION test_dropcreate_function()
RETURNS VOID
LANGUAGE plpgsql
AS $$
BEGIN
	DROP TABLE IF EXISTS aaa;
	CREATE TABLE aaa (bbb char(5) CONSTRAINT firstkey PRIMARY KEY, ccc char(5) );
	DROP TABLE IF EXISTS aaab;
	CREATE TABLE aaab (bbba char(5) CONSTRAINT secondkey PRIMARY KEY, ccca char(5) );
	
END
$$;

SELECT test_dropcreate_function();

alguien tiene la base de datos del profesor o donde lo puedo conseguir?

Diferencias STORE PROCEDURE y FUNCTIONS STORE PROCEDURE: no regresan valor y hacen parte del est谩ndar SQL FUNCTIONS: regresan valores, son mas flexibles y son propias de PostgreSQL/PLPGSQL

No se si esta ser谩 una clase de transici贸n, pero esta clase es muy diferente de las otras de este profesor, se me hace que fue my r谩pido como si fuera un repaso de procedure y funciones en PLPGSQL

buenard

Excelente, gracias

驴Entonces para sentencias SELECT siempre hay que utilizar funciones debido a que estas me regresan valores?