Human: postgres DB에서 어떤 칼럼에 값이 들어오면 값에 따라 특정한 값이 채워지는 다른 칼럼을 하나 추가하고 싶어.
ChatGPT:
PostgreSQL에서 새로운 칼럼을 추가하고, 한 칼럼의 값에 따라 다른 칼럼의 값을 자동으로 설정하려면 트리거와 트리거 함수를 사용할 수 있습니다. 아래 예시를 참고하세요.
예를 들어, 테이블의 구조가 다음과 같다고 가정합니다:
sqlCREATE TABLE sample_table (
id SERIAL PRIMARY KEY,
input_column VARCHAR(255),
output_column VARCHAR(255)
);
- 트리거 함수 생성 먼저, 트리거 함수를 생성합니다. 이 함수는 input_column의 값에 따라 output_column의 값을 설정합니다.
sqlCREATE OR REPLACE FUNCTION update_output_column()
RETURNS TRIGGER AS $$
BEGIN
IF NEW.input_column = 'A' THEN
NEW.output_column := 'Value for A';
ELSIF NEW.input_column = 'B' THEN
NEW.output_column := 'Value for B';
ELSE
NEW.output_column := 'Value for others';
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
- 트리거 생성 그 다음, 트리거를 생성하여 새 레코드가 삽입되거나 input_column이 업데이트될 때 트리거 함수가 실행되도록 합니다.
sqlCREATE TRIGGER update_output_column_trigger
BEFORE INSERT OR UPDATE OF input_column ON sample_table
FOR EACH ROW
EXECUTE FUNCTION update_output_column();
이제 input_column의 값이 추가되거나 변경될 때마다 output_column의 값이 자동으로 설정됩니다.
Add a comment