Linux下如何运行sql脚本

结论:以下是在 Linux 上运行 PostgreSQL SQL 脚本的步骤。

1 .登录 PostgreSQL 服务器 命令:su
postgres
2 创建 SQL 脚本 命令:vim test.sql 内容: SQL CREATE TABLE 测试(ID INT NOT NULL PRIMARY KEY,名称 TEXT); INSERT INTO 测试值(1 , 't1 ');
3 .运行脚本 命令:psql -f test.sql
4 确认表创建 命令:psql 使用 psql 运行。
SQL \d \d 测试
5 .查询数据 SQL 从测试中选择;
远程执行示例: 巴什 psql -U test1 -h 1 9 2 .1 6 8 .1 .1 9 4 -f test.sql
验证远程连接: 巴什 psql -U 测试 -h 1 9 2 .1 6 8 .1 .1 9 4
总之,请按照以下步骤操作。

shell如何执行sql脚本命令

说实话,我在使用 shell 运行 SQL 脚本时遇到过很多陷阱。
不同数据库的命令行工具根据具体情况差异很大。

例如,对于 PostgreSQL,使用 psql 命令是最简单的。
以前给客户搭建系统的时候,经常使用psql -Umyuser -ddbname -fmyscript.sql。
老实说,记住命令行参数的顺序非常容易。
起初我一直混淆 -U 和 -d 所以我每次都必须重新运行它。
如果你的脚本有很多用分号分隔的 SQL 语句,它的运行速度会快得多。
我们测试导入1 00万行数据,只用了1 0秒。

有趣的是,对于复杂的逻辑处理,比如依赖设置临时环境变量或者跨多个SQL文件执行,直接使用psql比较麻烦。
当时,我有一个打包 bash 脚本的项目。
首先,我连接到 psql 并将 SET search_path 设置为 public;然后运行第一个脚本,最后断开连接 SET search_path TO DEFAULT;这个技巧效果很好,但需要在脚本中使用 psql -c "..." 等嵌套命令,编写时容易出错。

如果数据量较小,则使用psql。
我有一个表,只包含几百条数据,所以我只需要使用psql -f。
然而,我有一个银行项目,有数亿数据,直接运行psql会冻结终端。
然后我转而使用 bash 脚本来循环读取 SQL 文件并批量运行它们。
这效率更高。

或者,我尝试编写一个Java脚本来使用JDBC运行SQL,但是调试起来太麻烦了。
我最终恢复到 shell 脚本,因为报告 SQL 错误时需要检查 Java 堆栈信息。
其实我也用过HeidiSQL等图形界面工具,但临时使用这些客户端就更麻烦了,因为服务器环境没有安装Java或Python。

最终,您选择哪种方法取决于您的具体情况。
psql简单直接,但灵活性较差。
虽然 bash 脚本很灵活,但编写时很容易出现语法错误。
最近接了一个项目,使用Redis来做缓存。
我写了一个自动同步数据的shell脚本。
每次运行的时候,我都不忘记检查一下变量名是否写对了。