나는 어떻게 전달 변수를 mysql 스크립트를 사용해야 할까요?
문제
내가 알고 있는 것으로 mysql 작성할 수 있습 SQL 문으로.sql 파일을 실행하여 파일에서 mysql 명령 라인에 다음과 같다:
mysql> source script.sql
나는 어떻게 변수를 전달하는 스크립트를 사용해야 할까요?예를 들어,만약 내가 원하는 스크립트를 실행를 검색하는 모든 직원이 부서 내가 원하를 통과 할 수 있도록에서의 수학적으로 변수입니다.
나지 않을 실행하려고를 통해 쿼리를 쉘 스크립트입니다.거기에 간단한 쿼리를 실행에서 mysql 의 명령 라인입니다.나의 피로 다시 입력하는 그의 모든 시간,그리고 작성 쉘 스크립트를 그들을위한 것입니다.
해결책
다음과 같다:
set @department := 'Engineering';
그런 다음 참조 @department
을 위해 필요한 곳 어디에나에서는 스크립트입니다.sql:
update employee set salary = salary + 10000 where department = @department;
다른 팁
#!/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 my_db my_table
#
#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
다시 사용할 수 있습 전체 개념에서 에서 다음 프로젝트
당신이 정말 하고 더 적절한 방법이 있습니다.나는 당신을 실행하려고 mysql 쿼리를 통해 쉘 스크립트입니다.대신 같은 것을 사용하여 PERL 이나 PHP.
제휴하지 않습니다 StackOverflow