문제의 발단
팀원중에 누군가가 실수를 했다.
uid는 Long으로 만들어져야하는데, 실수로 Integer로 만들어진것.
그래서 컬럼 타입을 수정하기로 했는데..
눈물의 맨땅의 헤딩쇼
아래는 내가 실행했던 쿼리문들이다.
꼬리에 꼬리를 물면서 계속 제약이 생겼는데,
desc users;
ALTER TABLE users MODIFY pw VARCHAR(255) NOT NULL;
ALTER TABLE product MODIFY COLUMN prod_id BIGINT AUTO_INCREMENT;
ALTER TABLE wishlist MODIFY COLUMN prod_id BIGINT;
SHOW CREATE TABLE product;
SHOW CREATE TABLE wishlist;
ALTER TABLE wishlist DROP FOREIGN KEY FKs2bchaeo2wnv30pk3joivr029;
ALTER TABLE product MODIFY COLUMN prod_id BIGINT NOT NULL AUTO_INCREMENT;
SELECT TABLE_NAME, CONSTRAINT_NAME
FROM information_schema.KEY_COLUMN_USAGE
WHERE CONSTRAINT_NAME = 'FKkvvwij7pd7f6moxipoy0acx68';
ALTER TABLE review DROP FOREIGN KEY FKkvvwij7pd7f6moxipoy0acx68;
ALTER TABLE product MODIFY COLUMN prod_id BIGINT NOT NULL AUTO_INCREMENT;
SELECT TABLE_NAME, CONSTRAINT_NAME, COLUMN_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME
FROM information_schema.KEY_COLUMN_USAGE
WHERE CONSTRAINT_NAME = 'FK_cart_product';
ALTER TABLE cart DROP FOREIGN KEY FK_cart_product;
ALTER TABLE product MODIFY COLUMN prod_id BIGINT NOT NULL AUTO_INCREMENT;
ALTER TABLE wishlist DROP FOREIGN KEY FKs2bchaeo2wnv30pk3joivr029;
ALTER TABLE product MODIFY COLUMN prod_id BIGINT NOT NULL AUTO_INCREMENT;
SELECT TABLE_NAME, CONSTRAINT_NAME, COLUMN_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME
FROM information_schema.KEY_COLUMN_USAGE
WHERE CONSTRAINT_NAME = 'FKkwvj660rnl7gcocy0wl2y69ku';
ALTER TABLE cart DROP FOREIGN KEY FKkwvj660rnl7gcocy0wl2y69ku;
ALTER TABLE product MODIFY COLUMN prod_id BIGINT NOT NULL AUTO_INCREMENT;
ALTER TABLE wishlist MODIFY COLUMN prod_id BIGINT NULL;
ALTER TABLE cart MODIFY COLUMN prod_id BIGINT NULL;
ALTER TABLE review MODIFY COLUMN prod_id BIGINT NULL;
이상했다. 계속 쿼리문을 실행하는데, Foreign Key 제약이 걸려서 변경을 할 수 없었다.
정말 허무하게도, 이런 이유가 생긴 이유는
같은 시각, 팀원들은 나와 같이 연결중이었고, 계속 자동으로 Reload되며 테이블을 Alter중이었다..
팀원들한테 전부 실행을 멈춰달라고 부탁 후, 컬럼을 수정하여 문제를 해결했다.
오늘 배운점. ERD 정말 열심히 생각해서 만들고, JPA에 쓸 엔티티 파일도 공들여서 만들자. 제발.