본문 바로가기

개발일지

Nest.js 프로젝트 중 에러 해결

1.  ERROR [ExceptionsHandler] ER_NO_DEFAULT_FOR_FIELD: Field 'nick_name' doesn't have a default value

 

열에 기본값(default value)를 지정하지 않았는데 그 열의 값이 지정되지 않은 insert, update 등으로 자료를 넣으면 만날 수 있는 오류이다. 두가지 방법으로 해결할 수 있다.

 

1) 기본값을 미리 설정해둔다.

열에 기본값을 설정해두면 자료값을 넣지 않았을 때 기본값으로 저절로 채워진다. 

 

2) 데이터를 빠짐없이 넣는다.

컬럼과 그 값을 빠뜨리지 않고 넣으면 오류를 피할 수 있다. 하지만 나는 updateData를 할 때 이 오류를 만났기에 선택적으로 넣을 수 밖에 없어 기본값을 설정하는 방법을 사용했다.

 

2. must be string

@IsString
seat_num?: number
  @IsOptional()

?을 붙여줬는데 IsString() 때문에 계속 유효성검사를 실행하면 에러인 must be string을 반환했다. @IsOptional 데코레이션을 붙여줘서 유효성검사를 건너뛸 수 있었다. Nest.js로 프로젝트를 처음 진행하다보니 아직 익숙치 않은 점도 많았지만 기초를 잘 쌓아두면 express보다 더 편하게 만들 수 있겠다는 생각이 들었다.

 

출처

https://velog.io/@claraqn/MySQL-Field-%EC%B9%BC%EB%9F%BC-doesnt-have-a-default-value-%EC%97%90%EB%9F%AC-0z6yo9y0

 

[MySQL] Field '칼럼' doesn't have a default value 에러

해당 블로그를 확인해본 결과,해당 테이블에 INSERT, UPDATE중 해당 컬럼의 값이 들어가지 않기 때문에 발생한 에러블로그 저자는 컬럼 속성을 NOT NULL에서 NULL로 변경함으로써 문제 해결하지만 본인

velog.io