SQL

[SQL] 에러해결 (ERROR: cannot insert a non-DEFAULT value into column "col1"Detail: Column "col1" is a generated column.)

15호의 개발자 2022. 8. 17. 09:00
반응형

[SQL] 에러해결 (ERROR: cannot insert a non-DEFAULT value into column "col1"Detail: Column "col1" is a generated column.)

 

 

 

 


 

 

 

[에러 발생]

 

 

INSERT 쿼리 작성 시 아래와 같은 에러가 떴다.

 

 


ERROR: cannot insert a non-DEFAULT value into column "col1"
Detail: Column "col1" is a generated column.

 

 

 

 

 

 

 

 

 

[에러 원인]

 

 

확인해보니 테이블 생성시 컬럼 col1에

 

CASE WHEN문을 집어넣어 default 값을 만들어 놨었다.

 

 

CREATE TABLE 스키마명.테이블명
(
  --생략
, col1       VARCHAR (5) DEFAULT 
  CASE
      WHEN (length((col2)::text) > 0) THEN 'type1'::text
      ELSE 'type2'::text
  END
, --생략
)

 

 

 

 

이렇게 기본값이 있는데

 

sql insert문을 날릴 때 col1에 값을 넣어서 날리고 있었기 때문에 발생한 에러였다.

 

 

 

 

 

 

 

[에러 해결]

 

 

insert 쿼리를 날릴 때 col1을 아예 빼서 쿼리를 날리면 에러가 나지 않고 정상적으로 동작한다.

 

 

 

반응형