Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/04/2008, 14:26
White_Devi
 
Fecha de Ingreso: noviembre-2002
Ubicación: http://localhost/
Mensajes: 195
Antigüedad: 21 años, 5 meses
Puntos: 1
Re: Para que sirve la clausula Delimiter?

Ok, yo no se mucho de mysql, pero si se lo que es delimiter, solo que no se como explicarlo jeje pero hare el intento.

Supongamos que tienes dos instrucciones, como mysql sabe donde termina una y empieza la otra?? pues facil, donde este el ; ahi termino una y la que sigue logicamente es la otra, algo asi:

Código:
INSERT INTO tabla1 VALUES (1,'bla bla','prueba');
SELECT * FROM tabla1;
De esa forma le estas diciendo que primero corra INSERT INTO tabla1... y luego haga el SELECT * FROM..., todo claro hasta ahora? bien, si no entiendes algo me avisas.

Pero ahora imaginate que tienes un store procedure, que es como una funcion, usando ; no puedes hacerlo porque la funcion tiene muchas instrucciones por tanto necesitas muchos ; imaginate algo asi:

Código:
INSERT INTO tabla1 VALUES (1,'bla bla','prueba');
SELECT * FROM tabla1;

INSERT INTO tabla2 VALUES (2,'bla bla','prueba');
SELECT * FROM tabla2;

INSERT INTO tabla3 VALUES (3,'bla bla','prueba');
SELECT * FROM tabla3;
y supongamos que quieres meter eso en un SP (store procedure) para que solamente tengas que hacer esto:

Código:
SELECT procedure1
y al hacer eso el procedure correra todas las lineas que agregaste. Pues para que el mysql sepa de donde a donde va el procedure debes usar DELIMITER, por ejemplo

Código:
DELIMITER $$
INSERT INTO tabla1 VALUES (1,'bla bla','prueba');
SELECT * FROM tabla1;

INSERT INTO tabla2 VALUES (2,'bla bla','prueba');
SELECT * FROM tabla2;

INSERT INTO tabla3 VALUES (3,'bla bla','prueba');
$$
DELIMITER;

SELECT * FROM tabla3;
En ese caso le estas diciendo que desde donde dice $$ hasta donde dice $$ (de arriba hacia abajo) todo eso es lo que va dentro del procedure y no simplemente hasta el ;

Espero haberme explicado bien, soy pesimo explicando pero si tienes dudas me avisas.

Ahh y para entender mejor puedes buscar como crear store procedures para que veas muchos ejemplos de Delimiter

Suerte!!
__________________
http://www.ingenierosinc.com