Today I Learned/SQL

postgreSQL rule 사용하기

하나719 2023. 7. 13. 11:48
반응형

 

https://www.postgresql.org/docs/current/sql-createrule.html

 

CREATE RULE

CREATE RULE CREATE RULE — define a new rewrite rule Synopsis CREATE [ OR REPLACE ] RULE name AS ON …

www.postgresql.org

규칙을 적용할 테이블: tags 

tags 테이블에 tag = '과학' 으로 입력될 경우, 새로운 테이블에 이 데이터를 추가해주는 룰을 만들어보자. 

1. 룰에 맞는 데이터를 쌓아줄 테이블을 새로 만들어줍니다. 

CREATE TABLE a_tags (
id INT not null primary key,
book_id int,
tag text);

2. 규칙을 만들어줍니다. 

create or replace rule {rule_name}

as on insert to {rule_table} where {rule_colums = '조건'}

do also insert into {new_table}(column) values (rule_table_value)

CREATE OR REPLACE RULE r_tag1
AS ON INSERT TO tags WHERE NEW.tag ='과학'
DO ALSO INSERT INTO a_tags(id, book_id, tag) VALUES (NEW.id, NEW.book_id, NEW.tag);

3. 값 확인

tags 테이블에 '과학' 이라는 태그를 넣었는데, a_tags 테이블에 값이 추가된것을 확인할 수 있다. 

(+) rule 검색

select * from pg_rules where rulename = 'r_tag1';

 

어디에 활용 ?

서비스에서 특정 키워드를 모니터링해야할 때 사용할 수 있다. (비방글, 욕문자 등등)

반응형