PostgreSQL의 열에 함수를 포함하는 방법 (how to embed a function to column in PostgreSQL)


문제 설명

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 danb2000a_horse_with_no_name)

참조 문서

  1. how to embed a function to column in PostgreSQL (CC BY‑SA 2.5/3.0/4.0)

#generated-columns #SQL #postgresql






관련 질문

Db2: 동일한 행의 값이 설정된 타임스탬프를 저장하는 열을 만듭니다. (Db2: Create a Column that stores the timestamp a value in the same row is set)

PostgreSQL의 열에 함수를 포함하는 방법 (how to embed a function to column in PostgreSQL)

생성된 열을 추가하면 MariaDB가 충돌함 (Adding Generated Columns Crashes MariaDB)







코멘트