문제 설명
PostgreSQL의 열에 함수를 포함하는 방법 (how to embed a function to column in PostgreSQL)
저는 SQL과 PostgreSQL을 처음 사용하며 열이 다른 열의 데이터로 미리 정의된 함수를 자동으로 계산하는 데이터베이스에서 새 테이블을 만드는 방법을 찾으려고 합니다.
특히 TIME_IN | 타임아웃 | DURATION 열이 (=TIME_OUT ‑ TIME_IN
)의 결과를 표시하는 DURATION 열
물론 이것은 쿼리를 실행하여 수행할 수 있지만 SELECT * FROM log
를 실행할 때마다 테이블이 의 업데이트된 데이터에 따라 이미 계산된 기간 값으로 로드되도록 미리 정의할 수 있는지 알아보십시오. IN / OUT 열.
참조 솔루션
방법 1:
This can be done using a generated column, e.g.:
create table log
(
id integer primary key generated always as identity,
time_in timestamp,
time_out timestamp,
duration interval generated always as (time_out ‑ time_in) stored
);
Another option would be to create a view:
create view log_with_duration
as
select id,
time_in,
time_out,
time_out ‑ time_in as duration
from log;
(by danb2000、a_horse_with_no_name)