하나의 랜덤 필드를 가지는 더미 생성하기
SELECT
'user_' || seq || '@' || (
CASE (RANDOM() * 2)::INT
WHEN 0 THEN 'gmail'
WHEN 1 THEN 'hotmail'
WHEN 2 THEN 'yahoo'
END
) || '.com' AS email
FROM GENERATE_SERIES(1, 100) seq;
SQL
복사
|| 연산자를 통해 문자열을 조합 할 수 있다.
CASE 값 WHEN 조건 THEN 결과 END 문을 이용하여 조건 처리를 할 수 있다.
GENERATE_SERIES(시작 값, 끝 값) 문을 이용하여 연속된 값을 가지는 임시 테이블을 생성한다.
SELECT 문을 활용하여 INSERT 하기
INSERT INTO users(email)
SELECT 'moonsupport@google.com'
SQL
복사
이 때, 컬럼 수를 동일하게 해야 한다.
SELECT 이후에 값을 입력 하고 FROM 문을 생략 할 수 있다.
Trigger
DELIMITER //
CREATE TRIGGER legacy_board_create_extension AFTER INSERT ON xe_modules
FOR EACH ROW BEGIN
INSERT INTO board_extension (board_id, skin) VALUES (NEW.module_srl, "BASIC_BOARD");
INSERT INTO trigger_legacy_board_create_extension_log (board_id) VALUES (NEW.module_srl);
END;
DROP TRIGGER legacy_board_create_extension;
SQL
복사
DELIMITER 는 구분자를 의미한다.
Sequelize Migrate 파일에선 생략해서 써야 한다.
NEW 트리거에 걸린 테이블의 컬럼을 참조 할 수 있다.
DROP TRIGGER 로 트리거 삭제가 가능하다.
실행중인 쿼리 확인하기
SELECT * FROM pg_stat_activity ORDER BY query_start ASC;
SQL
복사
실행중인 쿼리 취소하기
실행 결과는 성공, 실패를 true, false로 반환한다.
pid 정보는 위 쿼리에서 확인된 pg_stat_activity.pid 값을 입력해야 함.
(버전에 따라 pg_stat_activity.procpid 일수도 있다.)
SELECT pg_cancel_backend(pid int);
SQL
복사