데이터베이스 (4) 썸네일형 리스트형 [postgres] (본인 기준) 자주사용되는 psql 사용 예제 모음집 PSQL 명령어 모음집 [명령어 모음집] 다양한 명령어를 모아두는 아카이브포스트 목적 명령어들을 모아두는 포스트 입니다. psql 명령어 일반 \copyright PostgreSQL 사용법 및 저작권 정보 표시 \crosstabview [칼럼들] 쿼리를 실행하고, 피봇 테이블 형태로 자료를 보여줌 \errverbosduklook.tistory.com 특정 테이블만 백업해서 복원하기특정 테이블만 백업하려면, 기존 백업 방식에서 -t 형식만 추가로 적어주면 된다. 예를 들어 pg_dump 를 사용해서 백업 시 다음과 같이 명시하면 해당 사용자의 데이터베이스에서 tablename 에 해당하는 테이블만 백업되어 .sql 파일로 저장된다.pg_dump -U username -d dbname -t tablenam.. [postgres] 외래키 제약 조건에 대한 정리 postgres 데이터베이스를 활용해서 테이블을 구성하고, 회원탈퇴 기능을 구현하려고 하는 와중에 삭제 요청을 하니 외래키 참조가 지정된 상위 테이블이 존재하여 삭제가 불가능하다는 에러 문구가 떴었다. 이러한 삭제가 불가능한 이유에 대해서 알아보니 관계형 데이터베이스에서 참조 무결성을 유지하여 상위 테이블과 하위 테이블 간의 관계가 유효한지 확인하는 것이 외래키 제약 조건이 존재하는 이유라는 것을 확인할 수 있었다. 따라서, 만일 회원탈퇴 처리를 할 때 해당 유저가 작성한 글이나 북마크 목록 등의 개인 정보를 연쇄적으로 삭제하기 위해서는 기본적으로 설정되어 있는 제약 조건을 수정할 필요성을 알게 되었고, 이 포스트는 해당 기능 구현을 위해 찾아본 내용을 간략하게 정리하여 향후 참고하기 위한 목적으로 작성.. [pg] postgres 에서 autoincrement 가 적용된 primary key 의 seq를 초기화하는 쿼리 seq 초기화 쿼리문법 다음과 같은 형식으로 입력하면 테이블명에 해당하는 컬럼의 자동증가 시퀸스의 값이 1로 초기화된다. ALTER SEQUENCE 테이블명_컬럼명_seq RESTART WITH 1; 예시 예를 들어, ALTER SEQUENCE quotes_quote_id_seq RESTART WITH 1; 이라고 지정한다면, quotes 라는 테이블의 quote_id 의 seq 에 입력된 값이 1로 재시작 되면서, 테이블에 값을 추가하면 초기화된 1 부터 다시 증가하는 것을 확인할 수 있다. 설명에서 누락된 점이 있다면, 기존에 존재했던 테이블의 이미지가 없다는 점인데, 부연 설명하자면, 원래는 quote_id 가 650 이후로 시작되고 있었다. 하지만, 위 쿼리를 통해 시퀸스를 초기화하고 나서 다시 .. [SQLite3] AUTOINCREMENT 를 초기화하는 방법 AUTOINCREMENT 로 설정된 값을 저장하는 테이블과 접근방법(초기화 방법) SQLite3 는 경량화된 데이터베이스라서 그런지, 기본적으로 자동증가된 기본키를 초기화시키는 명령어가 별도로 존재하지 않는다. 따라서, SQLite 에서 이를 초기화하려면, 해당 값을 저장하고 있는 테이블에 직접 접근하여 제거해줄 수 밖에 없다. SQLite3 에서 SQLite 스튜디오와 같은 프로그램을 사용하여 AUTOINCREMENT 를 기본키(Primary Key) 에 적용했다면, 해당 자동증가된 값은 "sqlite_sequence" 이라는 별도의 테이블에 저장되는데 이 때, 저장되는 테이블 구조를 간략하게 표현해보면 다음과 같다. name seq 테이블이름 시퀸스번호 즉, 위 테이블에서 name 과 일치하는 seq.. 이전 1 다음