[MySQL] Error 3780 해결

Dong Eun Lee·2021년 11월 9일
1
post-thumbnail

1. 에러내용

Error code : 3780. Referencing column 'board_id' and referenced column 'id' ind foreign key constraint 'comment_ibfk_1' are incompatible.

unsigned int 타입의 board_id 컬럼을 Foreign key로 설정하는 과정에서 발생한 에러입니다.



작성한 쿼리문 :

CREATE TABLE comment (
.
.
board_id INT UNSIGNED NOT NULL COMMENT "게시글 번호",
.
.
.
FOREIGN KEY (board_id) REFERENCES bbgg.board (id),
.
.);

2. 원인

board_id 컬럼은 unsigned 속성이지만, 참조하는 board 테이블의 id 컬럼은 unsigned 속성을 갖고 있지 않았기 때문에 발생한 문제였습니다.

unsigned 속성이란?
컬럼 속성에 unsigned를 부여하는 것은 컬럼의 활용도에 따라 범위를 다르게 주는 것이다.
양수만 존재하는 데이터라고 하면 unsigned를 속성을 부여해서 양수의 데이터 범위를 넓힐 수 있다.


3. 해결

ALTER TABLE board MODIFY COLUMN id int UNSIGNED;

참조하려는 board 테이블의 id 컬럼에 unsigned 속성을 부여함으로써 문제 해결되었습니다.




참고 : https://stackoverflow.com/questions/59862462/creating-foreign-key-in-sql-is-being-deemed-incompatible-dont-know-why

profile
하고 싶은게 너무 많아 고민인 주니어 개발자

0개의 댓글