PostgreSQL 구현 sql 파일 일괄 실행
3461 단어 PostgreSQLsql실행
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로 실행할 수 있습니다.이상의 개인적인 경험으로 여러분께 참고가 되었으면 좋겠습니다. 또한 많은 응원 부탁드립니다.만약 잘못이 있거나 완전한 부분을 고려하지 않으신다면 아낌없이 가르침을 주시기 바랍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Redmine 데이터베이스를 MySQL에서 PostgreSQL로 마이그레이션 (보충)Redmine 의 Database 를 MySQL 로 운용하고 있었습니다만, MySQL 5.6 이상이나 MariaDB 에는 , , 이러한 티켓이 수년 동안 방치된 상황을 감안하여, PostgreSQL로 마이그레이션하기...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.