您现在的位置是:首页 > 博客网站制作 > CSS3|Html5CSS3|Html5

PostgreSQL 实现sql放入文件批量执行

杨青青2022-02-20【CSS3|Html5】人已围观

简介这篇文章主要介绍了PostgreSQL实现sql放入文件批量执行,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧。PostgreSQLsql放入文件,登入数据库之后批量执行1.建

这篇文章主要介绍了PostgreSQL实现sql放入文件批量执行,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧。

PostgreSQLsql放入文件,登入数据库之后批量执行

1.建立测试sql:

viaa.sql插入:猜测每条sql语句是用;分隔的,function中的多个;也会自动识别。

createtabletb1(idinteger);
insertintotb1selectgenerate_series(1,10);
select*fromtb1;
deletefrom
tb1whereid<3;
select*fromtb1;

2.将aa.sql放入./src/postgresql-9.3.5/src/tutorial下(./src/postgresql-9.3.5/src/tutorial是PostgreSQL自动识别的目录,当然也可以放在任意目录,比如/home/postgres/aa.sql)

3.切换用户登入

1

2supostgrespsqlpostgres

4.执行:当输入\i时候,会自动检测到./src/postgresql-9.3.5/src/tutorial下的文件,PostgreSQL的测试例子也放在此目录下

postgres=#\iaa.sql(\i/home/postgres/aa.sql)
id|name
----+------
1|join
2|join
3|join
4|join
5|join
6|join
7|join
8|join
9|join
10|join
(10rows)

CREATETABLE
INSERT010
id
----
1
2
3
4
5
6
7
8
9
10
(10rows)

DELETE2
id
----
3
4
5
6
7
8
9
10
(8rows)

postgres=#

postgres=#\dtb1
Table"public.tb1"
Column|Type|Modifiers
--------+---------+-----------
id|integer|

第二个例子:

vibb.sql:写入一个function:

createfunctionfunc1()returnsvoidas$$
declare
begin
deletefrompersonwhereid>5;
deletefromtb1whereid>5;
end
$$languageplpgsql;

selectfunc1();

执行前:

postgres=#select*fromperson;
id|name
----+------
1|join
2|join
3|join
4|join
5|join
6|join
7|join
8|join
9|join
10|join
(10rows)

postgres=#select*fromtb1;
id
----
3
4
5
6
7
8
9
10
(8rows)

执行:

postgres=#\ibb.sql
CREATEFUNCTION
func1
-------

(1row)

执行后:

postgres=#select*fromperson;
id|name
----+------
1|join
2|join
3|join
4|join
5|join
(5rows)

postgres=#select*fromtb1;
id
----
3
4
5
(3rows)

postgres=#

5.也可以使用psql命令执行

1pslq-dpostgres-Upostgres-f/home/postgres/aa.sql

补充:PostgreSQL-用psql运行SQL文件

对于预先写好的SQL文件,比如/home/user1/updateMyData.sql,可以有两种方式来运行这个SQL文件。

方式一:

连接db后执行SQL文件

首先通过psql连接到对应的db:

1psql-ddb1-UuserA

接着输入密码,进入数据库后,输入:

1\i/pathA/xxx.sql

这里有个问题,如果你把SQL文件的路径里的路径分隔符写成了\,会报错说Permissiondenied。

这里的文件路径必须使用Linux平台下的路径分隔符/,否则会报错。

方式二:

直接通过psql命令执行SQL文件

这种方式无需先登录数据库,直接用一个命令就可以了:

1psql-ddb1-UuserA-f/pathA/xxx.sql

接着输入密码即可执行SQL文件到对应的db里。

Tags:

很赞哦! ()

文章评论

站点信息

  • 建站时间:2011年01月12日
  • 网站程序:帝国CMS7.5
  • 主题模板《今夕何夕》
  • 文章统计625篇文章
  • 标签管理标签云
  • 微信公众号:扫描二维码,关注我们