자동증가(serial,bigserial) seq 값 재설정 (setval).
SELECT SETVAL ( '시퀀스이름' , 원하는값 ) ;
SELECT SETVAL ( pg_get_serial_sequence ( '테이블명' , '필드명' ) , 1 , false ) ;
SETVAL 의 마지막 parameter 로 boolean 형을 하나 받을 수 있는데
true 이면 sequence 의 nextval 은 현재값 +1 이고 false 이면 그 값을 그대로 반환한다.
SELECT SETVAL ( 'some_seq' , 100 ) ; 일 경우 nextval ( 'some_seq' ) 는 101 을 반환.
SELECT SETVAL ( 'some_seq' , 100 , false ) ; 일 경우 nextval ( 'some_seq' ) 는 100 을 반환.
bytea type 크기 구하기 SELECT octet_length(the_data_field) FROM table_name;
UTF-8 로 인코딩 : SET client_encoding='UTF-8';
기본값으로 UPDATE : UPDATE 테이블명 SET "필드명"=DEFAULT;
BIGINT 을 timestamp 로 변환: SELECT TO_CHAR(TO_TIMESTAMP(1305628828000/1000), 'YYYY-MM-DD HH24:MI:SS');
timestamp 를 BIGINT 로 변환: SELECT EXTRACT(EPOCH FROM TIMESTAMP '2011-05-17 10:40:28') * 1000;
SHOW DATABASES : SELECT database_name FROM pg_database;
SHOW TABLES : SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = '스키마이름';
SHOW COLUMNS : SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = '테이블이름';
테이블 확인 : SELECT COUNT(*) FROM pg_tables WHERE schemaname='test_schema' AND tablename='test_table';
필드 확인 : SELECT COUNT(*) FROM pg_attribute WHERE attrelid IN (SELECT oid FROM pg_class WHERE relname='테이블이름') AND attname='필드이름';
시간 간격 (단위.초) : EXTRACT ( EPOCH FROM now ( ) - recent_update )
TABLE Schema Copy. CREATE TABLE new ( LIKE old INCLUDING ALL );
SELECT pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) AS size FROM pg_database;
SELECT pg_database.datname, pg_database_size(pg_database.datname), pg_size_pretty(pg_database_size(pg_database.datname)) FROM pg_database ORDER BY pg_database_size DESC;
http://www.niwi.be/2013/02/17/postgresql-database-table-indexes-size/
http://wiki.postgresql.org/wiki/Disk_Usage
'DB & SQL & web' 카테고리의 다른 글
[PostgreSQL] 수동 설치 - Administrator 계정으로 비밀번호 없이 설치 (0) | 2013.01.09 |
---|---|
[PostgreSQL] 조건식 (0) | 2012.10.30 |
MySQL - 유니코드 (0) | 2012.09.26 |
MySQL - 복사&보관&복원 (0) | 2012.09.01 |
jsp 에서 MySQL 사용 (0) | 2011.11.09 |