SQL ENBEVIDO

Páginas: 9 (2004 palabras) Publicado: 17 de mayo de 2013
SQL ENBEBIDO

19.1. Procedimientos almacenados y las tablas de permisos
Los procedimientos almacenados requieren la tabla proc en la base de datos mysql. Esta tabla se crea durante la instalación de MySQL 5.0. Si está actualizando a MySQL 5.0 desde una versión anterior, asegúrese de actualizar sus tablas de permisos para asegurar que la tabla proc existe. Consulte Sección 2.10.2, “Aumentar laversión de las tablas de privilegios”.
Desde MySQL 5.0.3, el sistema de permisos se ha modificado para tener en cuenta los procedimientos almacenados como sigue:
• El permiso CREATE ROUTINE se necesita para crear procedimientos almacenados.
• El permiso ALTER ROUTINE se necesita para alterar o borrar procedimientos almacenados. Este permiso se da automáticamente al creador de una rutina.
•El permiso EXECUTE se requiere para ejectuar procedimientos almacenados. Sin embargo, este permiso se da automáticamente al creador de la rutina. También, la característica SQL SECURITY por defecto para una rutina es DEFINER, lo que permite a los usuarios que tienen acceso a la base de datos ejecutar la rutina asociada.
Los procedimientos almacenados y rutinas se crean con comandos CREATEPROCEDURE y CREATE FUNCTION . Una rutina es un procedimiento o una función. Un procedimiento se invoca usando un comando CALL , y sólo puede pasar valores usando variables de salida. Una función puede llamarse desde dentro de un comando como cualquier otra función (esto es, invocando el nombre de la función), y puede retornar un valor escalar. Las rutinas almacenadas pueden llamar otras rutinasalmacenadas.
Desde MySQL 5.0.1, los procedimientos almacenadoso funciones se asocian con una base de datos. Esto tiene varias implicaciones:
• Cunado se invoca la rutina, se realiza implícitamente USE db_name ( y se deshace cuando acaba la rutina). Los comandos USE dentro de procedimientos almacenados no se permiten.
• Puede calificar los nombres de rutina con el nombre de la base de datos. Estopuede 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 esto se asocia con 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 también se borran.
(En MySQL 5.0.0, los procedimientos almacenados songlobales y no asociados con una base de datos. Heredan la base de datos por defecto del llamador. Si se ejecuta USE db_name desde la rutina, la base de datos por defecto original se restaura a la salida de la rutina.)
MySQL soporta la extensión muy útil que permite el uso de comandos regulares SELECT (esto es, sin usar cursores o variables locales) dentro de los procedimientos almacenados. Elconjunto de resultados de estas consultas se envía diractamente al cliente. Comandos SELECT múltiples generan varios conjuntos de resultados, así que el cliente debe usar una biblioteca cliente de MySQL que soporte conjuntos de resultados múltiples. Esto significa que el cliente debe usar una biblioteca cliente de MySQL como mínimos desde 4.1.
La siguiente sección describe la sintaxis usada paracrear, alterar, borrar, y consultar procedimientos almacenados y funciones.
CREATE PROCEDURE y CREATE FUNCTION
CREATE PROCEDURE sp_name ([parameter[,...]])
[characteristic ...] routine_body

CREATE FUNCTION sp_name ([parameter[,...]])
RETURNS type
[characteristic ...] routine_body

parameter:
[ IN | OUT | INOUT ] param_name type

type:
Any valid MySQL data typecharacteristic:
LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'

routine_body:
procedimientos almacenados o comandos SQL válidos
Estos comandos crean una rutina almacenada. Desde MySQL 5.0.3, para crear una rutina, es necesario tener el permiso CREATE ROUTINE , y los...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Que es sql
  • que es sql
  • SQL
  • Sql
  • Bases de datos, no sql y sql
  • Conceptos Sql
  • Sql windows
  • Comandos Sql

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS