从批处理文件更新mysql查询

时间:2015-04-18 00:18:52

标签: mysql windows batch-file

基本上我的批处理文件包含:

mysql -u root -pMypassword use myTableDB update myTable set extracted='Y'

但是对于某些语法错误,它不会更新表。但是,当我通过命令行运行时:

mysql -u root -pMypassword use myTableDB
mysql update myTable set extracted='Y'

通过命令行工作。任何人都可以指出我在批处理文件上有什么语法错误。

2 个答案:

答案 0 :(得分:3)

最干净的方法如下:

mysql -u root -pMypassword -DmyTableDB -ANe"update myTable set extracted='Y'"

或者如果您希望将SQL命令置于变量中,则可以执行此操作

set sqlstmt=update myTable set extracted='Y'
mysql -u root -pMypassword -DmyTableDB -ANe"%sqlstmt%"

这是我刚刚运行的一个例子

set sqlstmt=show databases
mysql -u root -pMypassword -DmyTableDB -ANe"%sql%"

我得到了这个

C:\WINDOWS\system32> set sqlstmt=show databases
C:\WINDOWS\system32> mysql ... -ANe"%sql%"
+--------------------+
| information_schema |
|              mysql |
| performance_schema |
|               test |
+--------------------+

C:\WINDOWS\system32>

答案 1 :(得分:1)

mysql客户端从STDIN读取SQL命令。要做你想做的事,你必须在批处理文件中执行以下操作:

echo "update myTable set extracted='Y'" | mysql -u root -pMypassword myTableDB