스프링에서는
ERROR 20104 --- [nio-8282-exec-6] o.h.engine.jdbc.spi.SqlExceptionHelper
: Field 'record_img_id' doesn't have a default value
이런 오류가 났었고
DB 에서는 아래와 같은 오류가 났다.
이유는 img_id가 제대로 들어가지 않았기 때문이다.
먼저 스프링에서 auto increment로 설정하기 위해 엔티티에서 @GeneratedValue(strategy = GenerationType.IDENTITY)
를 써준다.
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "img_id")
private int id;
나의 경우 이건 잘 써있었지만 DB에서 AUTO INCREMENT가 되어있지 않았다.
그런데 이것만 추가하려고 보니
Error 1833: Cannot change column 'img_id': used in a foreign key constraint 'img_id' of table 'mydb.record' SQL Statement
: ALTER TABLE `mydb`.`img` CHANGE COLUMN `img_id` `img_id` INT NOT NULL AUTO_INCREMENT
이런 오류가 났는데 이건 연관관계로 이 img_id를 다른 테이블에서 외래키로 사용하고 있는 구간이 있기 때문이었다.
그동안 외래키 참조 오류가 나면 테이블 데이터를 지우고 다시 생성하는 방식을 사용했었는데 더 간단한 방법을 찾았다.
바로!!!!
외래키 검사를 껐다 키는 것이다.
SET FOREIGN_KEY_CHECKS = 0;
/* 하고싶은 작업 */
SET FOREIGN_KEY_CHECKS = 1;
이렇게 한다면 아주 간단하게 할 수있지만 데이터의 무결성을 직접 수동으로 검증해야하므로 데이터가 손실나지 않도록 조심해야한다.
그럼 해결 끝~
다른 방법을 아시는 분이 계시다면 댓글 달아주시면 감사하겠슴다
'공부 > 기타' 카테고리의 다른 글
[MySQL]Workbench 글자 크기 키우는 방법 (글씨 크기 변경 방법) (0) | 2023.03.07 |
---|---|
[Unity]VS Code .NET Core오류 해결하기 방법 정리(유니티 자동완성 안됨) (2) | 2022.10.14 |
[docker]도커 에러 docker : error during connect (0) | 2022.08.01 |
한글이 이상하게 쳐질 때 간단한 해결 방법 (2) | 2022.07.28 |
[지라Jira]Import Issues from CSV 방법(형식) (0) | 2022.07.24 |
댓글