?
在BASH中,可以使用以下方法等待mysql LOAD DATA LOCAL INFILE完成:
mysql -u username -p -e "LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE table_name;" database_name
这将在执行完LOAD DATA LOCAL INFILE命令后立即退出mysql命令行工具。如果你想要等待LOAD DATA LOCAL INFILE完成,可以使用以下脚本:
mysql -u username -p -e "LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE table_name;" database_name &
wait $!
这里的&
符号将mysql命令放入后台执行,然后使用wait $!
命令等待mysql命令执行完成。
mysql -u username -p -e "LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE table_name;" database_name &
pid=$!
while true; do
result=$(mysql -u username -p -e "SELECT * FROM information_schema.processlist WHERE ID = $pid AND STATE = 'Executing LOAD DATA';" database_name)
if [ -z "$result" ]; then
break
fi
sleep 1
done
这里的pid=$!
将获取mysql命令的进程ID,然后使用while循环和SELECT语句来检查LOAD DATA LOCAL INFILE的执行状态。如果SELECT语句返回空结果,则表示LOAD DATA LOCAL INFILE已完成。
以上是等待mysql LOAD DATA LOCAL INFILE完成的两种方法,你可以根据实际情况选择适合的方法来使用。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云