![]() |
Un comando no necesita ser escrito en una s�la l�nea, as� que los comandos que requieran de varias l�neas no son un problema. mysql determinar� en d�nde finaliza la sentencia cuando encuentre el punto y coma, no cuando encuentre el fin de l�nea.
Aqu� est� un ejemplo que muestra un consulta simple escrita en varias l�neas:
mysql> SELECT
-> USER(),
-> CURRENT_DATE;
+-------------------+--------------+
| USER() | CURRENT_DATE |
+-------------------+--------------+
| blueman@localhost | 2002-09-14 |
+-------------------+--------------+
1 row in set (0.00 sec)
mysql>
En este ejemplo debe notarse como cambia el prompt (de mysql> a ->) cuando se escribe una consulta en varias l�neas. Esta es la manera en c�mo mysql indica que est� esperando a que finalice la consulta. Sin embargo si deseamos no terminar de escribir la consulta, podemos hacerlo al escribir \c como se muestra en el siguiente ejemplo:
mysql> SELECT
-> USER(),
-> \c
mysql>
De nuevo, se nos regresa el comando el prompt mysql> que nos indica que mysql est� listo para una nueva consulta.
En la siguiente tabla se muestran cada uno de los prompts que podemos obtener y una breve descripci�n de su significado para mysql:
Prompt | Significado |
---|---|
mysql> | Listo para una nueva consulta. |
-> | Esperando la l�nea siguiente de una consulta multi-l�nea. |
'> | Esperando la siguiente l�nea para completar una cadena que comienza con una comilla sencilla ( ' ). |
"> | Esperando la siguiente l�nea para completar una cadena que comienza con una comilla doble ( " ). |
Los comandos multi-l�nea com�nmente ocurren por accidente cuando tecleamos ENTER, pero olvidamos escribir el punto y coma. En este caso mysql se queda esperando para que finalicemos la consulta:
mysql> SELECT USER()
->
Si esto llega a suceder, muy probablemente mysql estar� esperando por un punto y coma, de manera que si escribimos el punto y coma podremos completar la consulta y mysql podr� ejecutarla:
mysql> SELECT USER()
-> ;
+----------------+
| USER() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
mysql>
Los prompts '> y "> ocurren durante la escritura de cadenas. En mysql podemos escribir cadenas utilizando comillas sencillas o comillas dobles (por ejemplo, 'hola' y "hola"), y mysql nos permite escribir cadenas que ocupen m�ltiples l�neas. De manera que cuando veamos el prompt '> o "> , mysql nos indica que hemos empezado a escribir una cadena, pero no la hemos finalizado con la comilla correspondiente.
Aunque esto puede suceder si estamos escribiendo una cadena muy grande, es m�s frecuente que obtengamos alguno de estos prompts si inadvertidamente escribimos alguna de estas comillas.
Por ejemplo:
mysql> SELECT * FROM mi_tabla WHERE nombre = "Lupita AND edad < 30;
">
Si escribimos esta consulta SELECT y entonces presionamos ENTER para ver el resultado, no suceder� nada. En lugar de preocuparnos porque la consulta ha tomado mucho tiempo, debemos notar la pista que nos da mysql cambiando el prompt. Esto nos indica que mysql est� esperando que finalicemos la cadena iniciada ("Lupita).
En este caso, �qu� es lo que debemos hacer? . La cosa m�s simple es cancelar la consulta. Sin embargo, no basta con escribir \c, ya que mysql interpreta esto como parte de la cadena que estamos escribiendo. En lugar de esto, debemos escribir antes la comilla correspondiente y despu�s \c :
mysql> SELECT * FROM mi_tabla WHERE nombre = "Lupita AND edad < 30;
"> " \c
mysql>
El prompt cambiar� de nuevo al ya conocido mysql>, indic�ndonos que mysql est� listo para una nueva consulta.
Es sumamente importante conocer lo que significan los prompts '> y ">, ya que si en alg�n momento nos aparece alguno de ellos, todas la l�neas que escribamos a continuaci�n ser�n consideradas como parte de la cadena, inclusive cuando escribimos QUIT. Esto puede ser confuso, especialmente si no sabemos que es necesario escribir la comilla correspondiente para finalizar la cadena, para que podamos escribir despu�s alg�n otro comando, o terminar la consulta que deseamos ejecutar.
Cocina Facil | IngenieroSoftware.com |