首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

BASH如何等待mysql LOAD DATA LOCAL INFILE完成

在BASH中,可以使用以下方法等待mysql LOAD DATA LOCAL INFILE完成:

  1. 使用mysql命令行工具:可以在BASH中使用mysql命令行工具连接到MySQL数据库,并执行LOAD DATA LOCAL INFILE命令。然后使用以下语句来等待LOAD DATA LOCAL INFILE完成:
代码语言:bash
复制
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完成,可以使用以下脚本:

代码语言:bash
复制
mysql -u username -p -e "LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE table_name;" database_name &
wait $!

这里的&符号将mysql命令放入后台执行,然后使用wait $!命令等待mysql命令执行完成。

  1. 使用MySQL的SELECT语句:另一种方法是使用SELECT语句来检查LOAD DATA LOCAL INFILE的执行状态。可以在BASH中使用以下脚本:
代码语言:bash
复制
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完成的两种方法,你可以根据实际情况选择适合的方法来使用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券