Hola a todos. Esta entrada es muy puntual y básico, pero es necesario conocer esta posibilidad porque nos puede servir para automatizar procesos (crontab); por tanto, les comparto la forma de cómo ejecutar una (o varias) sentencias SQL en una sola línea de comando desde Linux (Ubuntu en específico).
A continuación, la línea de comando:
mysql -u root -pMiPasswd miBaseDeDatos -Bse "update tabla set c2='1' where c1=1;"
Donde:
- -u root → Es el parámetro para asignar un nombre de usuario; en este caso, root.
- -pMiPasswd → Es el parámetro para ingresar una contraseña; en este caso, la contraseña está vista en la línea de comando (MiPasswd), lo cual puede ser un poco inseguro pero igual; si solo nosotros administramos el server…
- miBaseDeDatos → El nombre de la base de datos desde donde se quiere ejecutar la sentencia SQL.
- -Bse
- B → Batch | Si se trata de un SELECT , se muestran los resultados usando el TAB como separador de columnas y un salto de línea por cada registro.
- s → Silent | Da como resultado un formato de salida no tabular y el escape de caracteres especiales. Muestra menos información en la salida.
- e → Execute | Ejecuta la sentencia y luego se sale.
- {Sentencia SQL} → Separado por el » ; «, se pueden ejecutar todas las sentencias que se permite.
A continuación, un ejemplo de un SELECT con únicamente un parámetro, o sea, el necesario: -e :
Bien, espero que la información les haya servidor. Saludos.