我想写一个简单的windows批处理脚本,它要求输入某些有效值,并使用这些输入在批处理文件中运行sql查询。例如
@echo off
mysql "-uroot" -p -h "xx.xx.xx.xx" "abc"
SET /P ntid= Please enter the id of the user:
select * from tbl_employeedetails where empntid=%ntid%;
我想在控制台中请求empntid,然后在sql中获取并替换它,然后运行它。当我运行此命令时,我得到一个错误:
mysql "-uroot" -p -h "xx.xx.xx.xx" "abc"
Enter password:********
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '/P ntid= Please enter the NT id of the user:
select * from tbl_employeedetail' at line 1
实际上,我必须使用来自用户的输入运行多个查询,这将在控制台中得到提示
1条答案
按热度按时间wnrlj8wa1#
不幸的是你不能这么做。mysql批处理模式提供了运行sql文件的选项,但不支持用户交互。看看这个链接,了解mysql批处理模式https://dev.mysql.com/doc/refman/8.0/en/batch-mode.html
但我用了个小把戏
提示用户在sql脚本中输入所需的内容。
将sql查询写入文件
用mysql运行文件
删除文件
这是一个示例批处理文件
希望这能有所帮助。