PostgreSQL 구현 sql 파일 일괄 실행

3461 단어 PostgreSQLsql실행
PostgreSQL sql을 파일에 넣고 데이터베이스에 로그인한 후 대량 실행
1. 테스트 ql 만들기:vi aa.sql삽입: 모든 sql 문장이 사용될 것으로 추측하기;분리된,function 중의 여러 개;자동인식도 돼요.

create table tb1(id integer);
insert into tb1 select generate_series(1,10);
select * from tb1;
delete from
tb1 where id<3;
select * from tb1;
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
추가: PostgreSQL - psql로 SQL 파일 실행
미리 작성된 SQL 파일(예:/home/user1/updateMyData).sql, 이 SQL 파일을 실행하는 두 가지 방법이 있습니다.

방식 1:


db 연결 후 SQL 파일 실행
우선 psql을 통해 대응하는db에 연결합니다.

psql -d db1 -U userA
암호를 입력하고 데이터베이스에 들어가면 다음을 입력합니다.

\i /pathA/xxx.sql
SQL 파일의 경로에 있는 경로 구분자를\라고 쓰면 Permission denied라고 잘못 알립니다.
이 파일 경로는 Linux 플랫폼 아래의 경로 구분자를 사용해야 합니다. 그렇지 않으면 오류가 발생합니다.

방식 2:


psql 명령을 통해 직접 SQL 파일 실행
이 방식은 데이터베이스에 먼저 로그인할 필요가 없고 명령 하나로 바로 사용할 수 있다.

psql -d db1 -U userA -f /pathA/xxx.sql
비밀번호를 입력하면 SQL 파일을 해당db로 실행할 수 있습니다.
이상의 개인적인 경험으로 여러분께 참고가 되었으면 좋겠습니다. 또한 많은 응원 부탁드립니다.만약 잘못이 있거나 완전한 부분을 고려하지 않으신다면 아낌없이 가르침을 주시기 바랍니다.

좋은 웹페이지 즐겨찾기