문제가 일어난 상황)
특정 테이블에 데이터를 삽입하는 과정에서 발생함.

문제가 일어난 원인)
칼럼의 데이터 값으로 문자열을 주었는데 따옴표가 없어서 발생함.

해결 방안)
따옴표를 제대로 명시하자!

문제가 일어난 상황)

  유저의 데이터를 담을 User 테이블과 글 관련 데이터를 담을 Post 테이블의 관계 설정이 없었다.
  데이터베이스 정규화의 필요성을 느꼈고 한 명의 유저는 여러 개의 글을 쓸 수 있기때문에 일대다 관계를 형성했다.
  관계 설정을 한 후에 TypeORM QueryBuilder 를 통해 먼저 글 관련 데이터를 저장하고
  글이 생성된 후에 글이 가지고 있는 foreign key 칼럼에 userUid 를 저장하도록 로직을 짰다.
  여기서 문제가 생겼다.

문제가 일어난 원인)

  로직 자체가 글이 먼저 생성된 이후에 userUid를 저장하도록 했으므로 처음 글이 생성되면 userUid는 null 값을 줘야만한다.
  모든 column 은 null 이던 유효한 데이터든 가져야하기 때문이다. 그렇지 않으면 칼럼을 만들 필요가 없으니까.
  하지만 나는 userUid 칼럼의 기본값으로 null 을 허용하지 않았기때문에 해당 에러가 발생했던 것이다.

해결 방안)

  userUid 칼럼의 기본 값을 null로 지정해주었더니 문제가 해결되었다.

문제가 일어난 상황)

  글관련 데이터를 담을 Post 테이블과 이미지 관련 데이터를 담을 Media 테이블의 관계가 존재하지않았다.
  데이터베이스 정규화의 필요성을 느꼈고 하나의 글은 여러 이미지를 가질 수 있기때문에 일대다 관계를 만들어주었다.
  관계 설정 후에 writePost API를 테스트했는데 에러를 마주했다.

문제가 일어난 원인)

  테이블 관계 설정 이전에 미디어 테이블에 이미 데이터가 존재했다.
  해당 데이터들은 관계 설정 전에 삽입된 데이터이므로 foreign key를 가지지 않는 상태였다.
  즉 참조받는 테이블의 데이터를 먼저 삽입해서 발생한 오류이다.

해결 방안)

  기존에 존재하던 이미지들을 모조리 지워버렸더니 문제가 해결되었다.

'My Error Note > SQL error' 카테고리의 다른 글

Unknown column 'something' in 'field list'  (0) 2021.07.24
Field 'column' doesn't have a default value  (0) 2021.06.19

+ Recent posts