PostgreSQL sql放入文件批量执行
PostgreSQL sql放入文件,登入数据库之后批量执行 1. 建立测试sql: vi aa.sql 插入:猜测每条sql语句是用;分隔的,function中的多个;也会自动识别。 create table tb1(id integer); 2. 将aa.sql放入 ./src/postgresql-9.3.5/src/tutorial下(./src/postgresql-9.3.5/src/tutorial是PostgreSQL自动识别的目录,当然也可以放在任意目录,比如/home/postgres/aa.sql) 3. 切换用户登入 su postgres psql postgres 4. 执行:当输入i时候,会自动检测到./src/postgresql-9.3.5/src/tutorial下的文件,PostgreSQL的测试例子也放在此目录下 postgres=# i aa.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 (10 rows) CREATE TABLE INSERT 0 10 id ---- 1 2 3 4 5 6 7 8 9 10 (10 rows) DELETE 2 id ---- 3 4 5 6 7 8 9 10 (8 rows) postgres=# postgres=# d tb1 Table "public.tb1" Column | Type | Modifiers --------+---------+----------- id | integer | 第二个例子: vi bb.sql: 写入一个function: create function func1()returns void as $$ declare begin delete from person where id>5; delete from tb1 where id>5; end $$language plpgsql; select func1();切换到postgres,登入之后执行: 执行前: postgres=# select * from person ; id | name ----+------ 1 | join 2 | join 3 | join 4 | join 5 | join 6 | join 7 | join 8 | join 9 | join 10 | join (10 rows) postgres=# select * from tb1 ; id ---- 3 4 5 6 7 8 9 10 (8 rows)执行: postgres=# i bb.sql CREATE FUNCTION func1 ------- (1 row) 执行后: postgres=# select * from person ; id | name ----+------ 1 | join 2 | join 3 | join 4 | join 5 | join (5 rows) postgres=# select * from tb1 ; id ---- 3 4 5 (3 rows) postgres=# 5. 也可以使用psql命令执行 pslq -d postgres -U postgres -f /home/postgres/aa.sql (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |