You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL中如何在一个SQL文件内运行另一个SQL文件?

在SQL文件中调用外部SQL文件的实现方法

不同数据库系统提供了各自的命令来在SQL脚本中加载并执行另一个SQL文件,以下是常见数据库的实现方式:

PostgreSQL

使用psql客户端的\i命令加载外部SQL文件,支持绝对或相对路径:

-- 创建目标表
CREATE TABLE public.target_table (date_col DATE);

-- 执行对应的数据插入脚本
\i 'c:/path/target_table-data.sql'

执行create.sql的命令:

psql -U 用户名 -d 数据库名 -f create.sql

MySQL/MariaDB

使用source命令(或简写\.)调用外部文件:

-- 创建目标表
CREATE TABLE public.target_table (date_col DATE);

-- 执行数据插入脚本
source c:/path/target_table-data.sql;
-- 或简写形式
-- \. c:/path/target_table-data.sql;

执行create.sql的命令:

mysql -u 用户名 -p 数据库名 < create.sql

SQL Server

通过sqlcmd工具的:r命令引用外部SQL文件:

-- 创建目标表
CREATE TABLE dbo.target_table (date_col DATE);

-- 执行数据插入脚本
:r c:\path\target_table-data.sql

执行create.sql的命令:

sqlcmd -S 服务器名 -U 用户名 -P 密码 -d 数据库名 -i create.sql

SQLite

使用.read命令加载外部SQL文件:

-- 创建目标表
CREATE TABLE target_table (date_col DATE);

-- 执行数据插入脚本
.read c:/path/target_table-data.sql

执行create.sql的命令:

sqlite3 数据库文件.db < create.sql

注意事项

  • 路径格式:Windows系统可使用正斜杠/或反斜杠\;Linux/macOS系统使用正斜杠/
  • 相对路径是相对于执行命令时的当前工作目录,而非create.sql所在目录,建议优先使用绝对路径避免路径错误
  • 确保执行SQL的客户端有读取外部文件的权限

内容的提问来源于stack exchange,提问作者Julian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 13:41:01