2014-10-15 21 views
6

Tôi muốn thực thi tệp .sql trong tệp bash nhưng tôi cần chuyển tham số tới tệp .sql từ tệp bash. Tôi nghĩ rằng đó là một giải pháp đơn giản nhưng tôi không thể tìm ra.thực thi tệp .sql trong bash với thông số

Đây là những gì tôi có cho đến nay:

sql file

SET @columnValue = &1; 
UPDATE tblTest SET Description = @columnValue; 

Bash file

#!/bin/bash 
columnValue=$1 
mysql -uroot -ppassword testDB < SQLscript.sql $columnValue 

Shell

sh myBashFile.sh "testColumnValue" 

Bất cứ ai có thể cho tôi biết tôi đang làm gì sai?

+0

bạn có thể cho chúng tôi biết điều gì đang xảy ra không? – ninesided

Trả lời

1

Bạn cần kết hợp cài đặt tham số SQL trước và sau đó tải tệp .sql của mình.

Trong tập lệnh bash của bạn, bạn có thể sử dụng mysql với tùy chọn -e để thực thi câu lệnh SQL. Phương pháp tương tự sau đó phải được sử dụng để cho mysql tải tập tin thay vì đọc nó bằng cách sử dụng bash.

Xem this example script.

Nếu bạn chỉ muốn thực hiện một câu lệnh, xem this question.

+0

Giải pháp của bạn đang làm việc tốt cảm ơn bạn !! :) Vì vậy, nếu tôi hiểu nó một cách chính xác không có cách nào để vượt qua params vào một tập tin .sql mà không cần thiết lập biến mysql? – Moenie

+0

Bạn có thể tạo tập lệnh bash thay thế mã thông báo biến trong tệp .sql của bạn trước khi chuyển nó thành 'mysql'. Tuy nhiên, tôi đoán điều đó sẽ làm phức tạp những thứ không cần thiết. – andy

Các vấn đề liên quan