PostgreSQL
[postgresql] duplicated key value violates unique constraint
PostgreSQL 은 Sequence로 인덱스를 관리하는데 이것을 프로그램으로 사용했다가 데이터 베이스에 넣어서 사용하면 sequence object 값이 다르게 되어 생기는 문제이다. 이런 경우에는 테이블 내용을 다 삭제해주거나 아래 쿼리문을 사용해서 오류를 해결한다. id 의 최대값과 sequece 의 값이 동일한지 확인한다. select max(id) from 테이블이름.시퀀스이름 ; select nextval('테이블이름.시퀀스이름'); 동일하지 않다면 아래 명령어로 값을 맞춰준다 select setval('테이블이름.시퀀스이름', (eslect MAX(id) from 테이블이름.시퀀스이름)); select setval('table.seq_table', (select max(id) from ta..
[PostgreSQL] if the message is not readable, please check database logs and/or host, port, dbname, user, password, pg_hba.conf
postgresql 에서 숫자 데이터를 날짜로 포맷하려고 했다. sql문에서 update 문을 사용하는데 아래와 같은 에러가 나오면서 쿼리문이 작동을 하지 않았다. SQL Error [22007]: ì¤ë¥: "ì " ê°ì "MM"ì ì í¨íì§ ìì (pgjdbc: autodetected server-encoding to be ISO-8859-1, if the message is not readable, please check database logs and/or host, port, dbname, user, password, pg_hba.conf ) Detail: ê°ì ì ìì¬ì¼ í©ëë¤. 해결방법 위에 에러 내용을 봐서는 검색해도 해결방법..
[SQL] COALESCE , LEAD, LAG 함수 (NULL이 아닌 첫번째 값, 이전값, 다음값)
LAG : 절 기준으로 이전의 로우의 값 변환 LAG(조건, 순서, 디폴트) OVER ( PARTITION BY 절) LEAD : 절 기준으로 이후의 로우의 값 변환 LEAD(조건, 순서, 디폴트) OVER ( PARTITION BY 절) COALESCE 함수 : 해당 칼럼들 중 NULL이 아닌 첫번째 값을 반환하는 함수 (오라클 NVL과 비슷한 기능) COALESCE(a_1, a_2, ..., a_N) a_1 부터 a_N까지 순서대로 비교 후 null 이 아닌 값을 반환한다. 모두 null이면 null을 리턴한다. grade 에 값이 null일 경우 #으로 치환한다. select coalesce(grade,'#') from student
서버에서 postgresql 접속 및 데이터베이스, 스키마, 테이블 조회
psql로 접속 후 사용하는 명령어이다. 명령어 postgresql 접속 명령어 sudo -u postgres psql postgresql 종료 명령어 \q ** crud 명령어 뒤에는 세미콜론을 붙여서 사용해야한다. 데이터베이스 전체 데이터베이스 조회 select datname from pg_database; database 확인 (소문자 L) \l database 변경 \c 데이터베이스이름 테이블 전체 테이블 조회 #psql \dt \dt *.* \c 데이터베이스이름 #sql select tablename from pg_tables; SELECT * FROM pg_catalog.pg_tables; 계정 사용자 확인 select * from pg_user; 계정삭제 drop role 계정; 계정 확인 ..
postgresql - relation "hibernate_sequence" does not exist
spring controller 에서 db에 저장 하려고 하는데 relation "hibernate_sequence" does not exist 다음과 같은 에러가 나왔다. 내 경우는 application.properties 에 아래 내용을 추가해주니 해결되었다. spring.jpa.hibernate.ddl-auto=update