如何用shell脚本批量执行指定路径下的sql脚本

2023-12-26 14阅读
今天我将分享一个实现方法——使用shell脚本批量执行指定路径下的sql脚本,在你的电脑上创建一个文件夹(例如"test_sql_scripts")。
  • 本文目录导读:
  • 1、Step 1:创建文件夹并准备测试数据
  • 2、Step 2:编写 shell 脚本
  • 3、Step 3:运行 shell 脚本
  • 4、注意事项:

在日常工作中,我们经常需要对数据库进行操作。而一些重复性较高的任务,比如批量执行多个sql脚本,则可以通过编写shell脚本来自动化完成。

今天我将分享一个实现方法——使用shell脚本批量执行指定路径下的sql脚本,并带有详细步骤和注意事项。

如何用shell脚本批量执行指定路径下的sql脚本

Step 1:创建文件夹并准备测试数据

第一,在你的电脑上创建一个文件夹(例如"test_sql_scripts"),然后在该文件夹中新建两个.sql格式的文档,分别命名为"test_script_1.sql"和"test_script_2.sql"。这里我们只是简单地编写了两个示例sql语句:

-- test_script_1.sql

SELECT * FROM user;

-- test_script_2.sql

UPDATE user SET age=20 WHERE id=10001;

接着,在你的mysql数据库中创建一个名为“test_db”的数据库,并向其中插入一条记录以供查询:

USE test_db;

INSERT INTO user (id, name, age) VALUES (10001, 'Tom', 18);

Step 2:编写 shell 脚本

打开终端或者命令行窗口(Windows系统请使用Git Bash等模拟器),创建一个新的.sh文件,比如命名为"run_sql_scripts.sh"。然后将以下代码复制到该文件中:

#!/bin/bash

# 定义变量

DB_USER="root"

DB_PASSWORD="password"

DB_NAME="test_db"

# 获取当前目录

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

# 遍历sql脚本并执行

for file in $DIR/*.sql

do

echo "Executing $file..."

mysql -u$DB_USER -p$DB_PASSWORD $DB_NAME

done

echo "All scripts executed successfully."

上述代码中,我们第一定义了三个变量:数据库用户名、密码和要操作的数据库名(请根据自己的实际情况修改)。然后通过"$ (cd“$(dirname”${ BASH_ SOURCE [ 0 ] }“) && pwd)"获取当前shell脚本所在路径,并将其赋值给变量 DIR。

接着,使用 for 循环遍历指定目录下所有.sql文件,并利用mysql命令执行这些sql语句。最后输出一条提示信息表示所有脚本都已经成功执行。

Step 3:运行 shell 脚本

保存好以上代码之后,在终端或者命令行窗口中输入以下命令来运行刚才编写的shell脚本:

sh run_sql_scripts.sh

如果一切正常,则会看到类似于以下输出结果:

Executing /Users/xxx/test_sql_scripts/test_script_1.sql...

Executing /Users/xxx/test_sql_scripts/test_script_2.sql...

All scripts executed successfully.

此时,我们可以登录到mysql数据库中查看数据是否被成功修改。

注意事项:

- 确保你的电脑上已经安装了mysql,并且将其添加到系统PATH环境变量中。

- 在编写sql语句时,请确保它们是正确的、有效的,并且不会导致数据丢失或损坏。在测试代码之前最好备份一下相关数据库和表格。

- 如果你想批量执行多个目录下的sql脚本,则需要稍作修改:通过for循环遍历所有子文件夹并获取其中所有.sql文件即可。

综上所述,使用shell脚本批量执行指定路径下的sql脚本是一种高效、方便而且易于维护的方法。希望这篇文章对你有所启发,如果有任何问题或建议欢迎留言交流!

文章版权声明:除非注明,否则均为游侠云资讯原创文章,转载或复制请以超链接形式并注明出处。

目录[+]