원래 sql 구문 틀리면 안된다고만 떴는데
이번에는 되긴 되는데 음... 찝찝하게 뒤에 warning이 하나 떠 있었다.
일단 구문은 적용돼서 넘겨도 될 것 같은데 사알짝 찝찝한 마음이 사라지지 않아서 warning
을 찾아보기로 했다.
일단 [ 쿼리 OK ] 저 문장에서는 warning의 개수만 알려주고 자세한 내용은 알려주지 않기 때문에 자세한 내용을 알아보기 위해서는 아래 구문을 입력해 확인해줘야 한다.
show warnings;
저 문장을 실행했더니 warning에 대해 자세한 설명이 나왔다
⭐ warning
Integer display width is deprecated and will be removed in a future release.
아!
int 타입에 크기를 정하면 경고를 준다고?
찾아봤더니 mysql 8.0.17 버전부터 int 타입에 길이 설정하는 건 더 이상 지원하지 않기로 하고 향후 버전부터는 제거될 기능 중 하나라서 경고를 주는 거라고 하더라!
여기서 내가 테이블을 만들 때 사용한 구문을 살펴보면...
CREATE TABLE book(
book_idx VARCHAR(10) PRIMARY KEY,
book_name VARCHAR(100) NOT NULL,
book_genre VARCHAR(20) NOT NULL,
book_writer VARCHAR(50) NOT NULL,
book_publisher VARCHAR(20) NOT NULL,
book_price INT NOT NULL,
book_quantity INT(20) NOT NULL,
book_date DATE NOT NULL,
book_sel_count INT NOT NULL DEFAULT 0,
book_detail TEXT NOT NULL,
book_discount INT NOT NULL DEFAULT 0,
book_img VARCHAR(200) NOT NULL,
book_detail_img VARCHAR(200) NOT NULL,
CONSTRAINT b_bidx_fk FOREIGN KEY(book_idx)
REFERENCES product (product_idx)
);
book_quantity
칼럼 데이터타입이 int인데 저기에만 크기를 지정해놓은 걸 찾을 수 있음!
근데 다른 int타입 컬럼은 크기 지정 안했는데 왜 쟤만 크기를 정해놨는지 모를 일,,,
그래도 저거 아니었으면
int형에 크기 지정하는 건 없어질 거라는 걸 몰랐을 테니까 다행이라고 해야하나?
book_quantity INT(20) NOT NULL,
이 부분이 잘못된 거니까 이 구문에서 지정해놓은 테이터 크기만 삭제해서
book_quantity INT NOT NULL,
이렇게 바꾼 후 다시 테이블을 만들면!!
이제 warning 없이 정상적으로 수행된다!