티스토리 뷰

이 페이지는 MySQL에서의 Boolean형이 tinyint(1)으로 저장되는 혼란스러움에 대해 설명하고 있다.

 

우선 BOOLEAN 형태는 5버전대부터 사용이 가능하다.

실제로 자료형 BOOLEAN(또는 BOOL) 타입으로 정의하면 1비트의 공간을 할당하여 TINYINT(1) 타입으로 정의 된다.

데이터는 TINYINT형태에 맞게 TRUE는 1, FALSE 는 0 으로 저장된다.

Node.js에서 MySQL 테이블 모델을 정의할 때,

isCheck: {
  type: DataTypes.BOOLEAN,
  allowNull: false,
},

위에 코드를 입력하고 isCheck = true, isCheck = false 를 저장해보니, 아래 사진처럼 MySQL 테이블 필드 설정은 TINYINT(1)로 변경되어있는것을 확인했다.

클라이언트에 0/1이 아닌, true/false로 보내고 싶다면 어떻게 해야할까?

정답은 없다.

아무작업을 하지 않아도 Boolean 타입으로 정의해주었기때문에 true/false로 리턴값을 던지기 때문에 이슈 종료 - 끄읕!!

댓글
최근에 올라온 글
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Total
Today
Yesterday