基本上我的批处理文件包含:
mysql -u root -pMypassword use myTableDB update myTable set extracted='Y'
但是对于某些语法错误,它不会更新表。但是,当我通过命令行运行时:
mysql -u root -pMypassword use myTableDB
mysql update myTable set extracted='Y'
通过命令行工作。任何人都可以指出我在批处理文件上有什么语法错误。
答案 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