una tablas recomendaciones queries porque optimizador lento lenta las dañan cuello consulta consejos como botella agilizar mysql variables scripting

tablas - ¿Cómo paso una variable a un script mysql?



porque se dañan las tablas en mysql (3)

Sé que con mysql puede escribir sentencias de SQL en un archivo .sql y ejecutar el archivo desde la línea de comandos de mysql de esta manera:

mysql> source script.sql

¿Cómo paso una variable al script? Por ejemplo, si quiero ejecutar un script que recupere todos los empleados en un departamento, quiero poder pasar el número del departamento como una variable.

No estoy tratando de ejecutar consultas a través de un script de shell. Hay consultas simples que ejecuto desde la línea de comandos mysql. Estoy cansado de volver a escribirlos todo el tiempo, y escribir un guión de shell para ellos sería exagerado.


Me gusta esto:

set @department := ''Engineering'';

Luego, @department donde lo necesite en script.sql:

update employee set salary = salary + 10000 where department = @department;


realmente debería estar buscando una forma más apropiada de hacer esto. Voy a adivinar que estás tratando de ejecutar consultas mysql a través de un script de shell. en su lugar deberías estar usando algo como PERL o PHP.


#!/bin/bash #verify the passed params echo 1 cmd arg : $1 echo 2 cmd arg : $2 export db=$1 export tbl=$2 #set the params ... Note the quotes ( needed for non-numeric values ) mysql -uroot -pMySecretPaassword / -e "set @db=''${db}'';set @tbl=''${tbl}'';source run.sql ;" ; #usage: bash run.sh isg_pub_en MetaEntity # #eof file: run.sh --file:run.sql SET @query = CONCAT(''Select * FROM '', @db , ''.'' , @tbl ) ; SELECT ''RUNNING THE FOLLOWING query : '' , @query ; PREPARE stmt FROM @query; EXECUTE stmt; DEALLOCATE PREPARE stmt; --eof file: run.sql

puedes reutilizar todo el concepto desde el siguiente proyecto