문제

내가 알고 있는 것으로 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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top