Salta el contingut

DAM - DAW - MP 0484 Bases de Dades

Entorn de treball

Abans de començar a escriure codi cal tenir present que les sentències SQL finalitzen en punt i coma (;) i les instruccions que posarem en el llenguatge procedimental també.

Això provocaria que per a crear les funcions o procediments, en posar el primer punt i coma (;), el sistema creurà que ha finalitzat la instrucció i ens donarà error.

The SELECT function is used to generate a sequence of numbers.

ERROR #1064 (42000): You have an error in your SQL syntax; check the manual
that corresponds to your MariaDB server version * * *
  • Abans de crear un procediment, funció o trigger caldrà canviar el delimitador.

  • Per a treballar en extensió procedimental utilitzarem l’entorn del DBeaver o bé del CMD.

  • Abans executarem la comanda DELIMITER // que farà que les sentències hagin d’acabar en // i després podrem tornar a deixar-ho tot normal executant la comanda DELIMITER ;

  • Per simplificar farem servir la fórmula OR REPLACE en el moment de la creació del codi.

Per assegurar-nos de tenir permisos crearem una nova base de dades, pft, i donarem permisos a l’usuari usuari@localhost per a fer qualsevol acció sobre qualsevol objecte.

CREATE DATABASE pft;
GRANT ALL PRIVILEGES ON pft.* TO usuari@localhost;

Exemples

mysql -u usuari -pusuari pft
DELIMITER //
BEGIN NOT ATOMIC
    SELECT USER(), CURRENT_DATE();
    SELECT CURRENT_DATE() - INTERVAL 1 DAY AS "Ahir";
END;
//
DELIMITER ;

Imatge de DBeaver

Sortida de dades

En un procediment o bloc anònim, qualsevol SELECT que fem sense INTO es mostrarà en la Consola en el moment de l’execució.

Per una millor visualització dels resultats podem utilitzar en la comanda mysql:

  • -N, --skip-column-names : per a no veure els noms de columnes

  • -s, --silent : Mostra les columnes separades per tabulador

mysql