- 포스트그래스QL
https://www.postgresql.org/download/
매뉴얼
https://www.postgresql.org/docs/9.6/index.html
//=================
- 설치 에러
there has boon an error.
an error occured executing the microsoft vc++ runtime installer
- 해결 방법
postgresql-9.6.11-1-windows-x64.exe --install_runtimes 0
//=========
서버 시작
net start postgresql-x64-9.6
or
"c:\Program files\PostgreSQL\9.6\bin\pg_ctl.exe" -D "c:\program Files\PostgreSQL\9.6\data" start
//==========
pgAdmin 실행
- 서버 시작시키고, 인터페이스는 웹
//============
용어
relation = table
//============
테이블에 자동증가 칼럼 만들기
예) test2 테이블의 id 칼럼 설정
type = int4
default = nextval('test2_id_seq'::regclass)
- navicat 에서 serial4 등의 형식을 지정하려고 하면 자료형이 없다고 나오는 에러를 해결할수 있다.
//=========
- 에러
- postresql nextval relation does not exist
- 해결
- sequence 만들기
CREATE SEQUENCE test2_id_seq START 1;
//================
- 모든 시퀀스 조회
SELECT c.relname FROM pg_class c WHERE c.relkind = 'S';
//=======================
PL/pgSQL (Procedural Language/PostgreSQL) - 프로시저
- Oracle의 PL/SQL PL/SQL (Procedural Language for SQL)
- 네트워크 통신을 줄일수 있지만,
디버깅이 힘들고, DBMS가 바뀌면 모두 새로 개발
- navicat p.proisagg column 에러
- postgresql 버전을 11을 사용하고 있다면 9 대로 낮춘다
- navicat 에서 procedure (function) debugging
- pldbgapi Extension 설치
- DB 이름 -> Functions -> 우클릭
-> Install pldbgapi Extension 선택 -> Install 버튼
- 프로시저 예제
CREATE OR REPLACE FUNCTION "public"."increment"("i" int4)
RETURNS "pg_catalog"."int4" AS $BODY$
DECLARE i2 integer;-- 변수 선언
BEGIN
i2= i+ 1;
RETURN i2;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
//======================
// 후기
프로시저(Stored Procedure, Function)을 디버깅하기 편하다고 해서(Navcat에서 지원) 써볼까 했는데
디버깅하는데 장님이 된 느낌이었다.
MySQL과 호환성도 떨어지고, 프로시저를 만들어도 DBMS종류가 바뀌면 호환성이 없어서 새로 작성해야 되니
그냥 C#에서 작성하는 게 나을 것 같다
'Code > Database (DB)' 카테고리의 다른 글
[C#] MySql (0) | 2019.02.11 |
---|---|
[DB] MySQL 서버 InnoDB 관련 설정값 변경 (0) | 2019.02.11 |
[SQL] MySql 프로시저(PROCEDURE ) (0) | 2019.02.07 |
[SQL] 서브쿼리(SubQuery) (0) | 2019.02.07 |
SQL 정리 (JOIN, 연산자) (0) | 2018.11.08 |