본문 바로가기

web/Backend

[개발 일지] 스프링부트와 db연동 / SQL 1075 오류 해결

스프링 부트와 mariadb를 써보고 있었다.
 
게시글 작성 처리를 하는데 '작성' 버튼을 눌러도 데이터베이스에 작성한 데이터가 들어오지 않았다.
결론은 1. 데이터베이스 목록에 오타가 나서,  2. id(pk)에 AUTO_INCREMENT 으로 하지 않아서였다.
 

오류 목록

1. unknown column 'content' in 'field list'
2. returned no natively generated identity value
3. sql 1075 Incorrect table definition

 
 
찬찬히 살펴보니

error: 1054-42s22: unknown column 'content' in 'field list'

라는 에러가 있었다. 내 데이터베이스에 'content'라는 항목이 없었다고 한다. 정말 'context'로 오타가 나있었다.
 
 
고쳐도 되지 않아서 또 살펴보니

servlet.service() for servlet [dispatcherservlet] in context with path [] threw exception [request processing failed: org.springframework.orm.jpa.jpasystemexception: the database returned no natively generated identity value : com.study.board.entity.board] with root cause

데이터베이스에서 value를 못받아왔다고 한다.
보니까 내 데이터베이스에는 id, title, content가 있는데 id에서 발생한 문제 같았다.
 

PrimaryKey가 AUTO_INCREMENT 속성으로 되어있지 않아서 발생하는 에러

 
바로 AUTO_INCREMENT로 바꿔 보았다. 그런데 sql 1075 에러가 나는 것이었다.
 

AUTO INCREMENT 설정시 주의사항

  • PRIMARY KEY 또는 UNIQUE로 설정해야한다.
  • DataType은 숫자로만 가능하다.
  • Data 입력시 NULL로 지정해야한다.

이렇게 id를 PRIMARY로 바꾸어 주니
 

데이터베이스에 데이터가 들어오기 시작했다 ✌️

'web > Backend' 카테고리의 다른 글

[개발 일지] 스프링부트 무작정 따라하기  (0) 2023.08.17