Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Esto puede usarse para referirse a una rutina que no est en la base de
datos actual. Por ejemplo, para invocar procedimientos almacenados p o
funciones f asociadas a la base de datos test, puede decir CALL test.p() o
test.f().
Cuando se borra una base de datos, todos los procedimientos almacenados
asociados con ella tambin se borran.
MySQL soporta la extensin muy til que permite el uso de comandos regulares
SELECT (esto es, sin usar cursores o variables locales) dentro de los
procedimientos almacenados. El conjunto de resultados de estas consultas se
enva directamente al cliente. Comandos SELECT mltiples generan varios
conjuntos de resultados, as que el cliente debe usar una biblioteca cliente de
MySQL que soporte conjuntos de resultados mltiples.
Disparadores
A partir de MySQL 5.0.2 se incorpor el soporte bsico para disparadores
(triggers).
mysql> CREATE TABLE account (acct num INT, amount DECIMAL(10,2)); mysql>
CREATE TRIGGER ins sum BEFORE INSERT ON account -> FOR EACH ROW
SET @sum = @sum + NEW.amount;
Creacin de disparadores
CREATE TRIGGER nombre disp momento disp evento disp ON nombre tabla
FOR EACH ROW sentencia disp
El disparador queda asociado a la tabla nombre tabla. Esta debe ser una tabla
permanente, no puede ser una tabla TEMPORARY ni una vista.
Evento disp indica la clase de sentencia que activa al disparador. Puede ser
INSERT, UPDATE, o DELETE. Por ejemplo, un disparador BEFORE para
sentencias INSERT podra utilizarse para validar los valores a insertar.
No puede haber dos disparadores en una misma tabla que correspondan al mismo
momento y sentencia. Por ejemplo, no se pueden tener dos disparadores
BEFORE UPDATE. Pero s es posible tener los disparadores BEFORE UPDATE y
BEFORE INSERT o BEFORE UPDATE y AFTER UPDATE.
Borrado de disparadores
Uso de disparadores
Tambin hay limitaciones sobre lo que puede aparecer dentro de la sentencia que
el disparador ejecutar al activarse: