Back to writing
미분류 1 min read HYEONG HWAN, MUN

drop all mysql check constraints

AI 를 활용한 개인적인 개발 프로젝트를 진행하고 있는데, check constraints 로 설계한 항목이 어느곳에도 표시되지 않더라.

현재, 프로젝트는 배포는 내가 구성했고, 백엔드 및 프론트엔드를 동시에 AI 가 작업하고 있다.
나는 중간중간 State를 최신으로 업데이트하여, 후속 AI 작업이 잘 이루어지는 일을 한다.

아무튼 이전 AI 스레드에서 어떤 테이블에 check constraints 를 설정했는데, 이 값이 mysqldump 를 해도 보이지가 않더라.
ide 및 mysql workbench 에서도 관련 설정값이 보이지 않았다.

그렇지만 check 조건은 동작 하더라.

 

상황을 ChatGPT 에서 설명했음.

CHECK 제약조건 제거하고 Trigger 로 대체하라고 권고하더라.

 

AI 에게 지시 조건 추가

 

확인 쿼리

SELECT tc.CONSTRAINT_SCHEMA,
tc.TABLE_NAME,
tc.CONSTRAINT_NAME,
cc.CHECK_CLAUSE
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
JOIN INFORMATION_SCHEMA.CHECK_CONSTRAINTS cc
ON tc.CONSTRAINT_SCHEMA = cc.CONSTRAINT_SCHEMA
AND tc.CONSTRAINT_NAME = cc.CONSTRAINT_NAME
WHERE tc.CONSTRAINT_TYPE = 'CHECK';

 

DROP 쿼리

SELECT CONCAT(
'ALTER TABLE `', tc.CONSTRAINT_SCHEMA, '`.`', tc.TABLE_NAME,
'` DROP CHECK `', tc.CONSTRAINT_NAME, '`;'
) AS drop_statement
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
WHERE tc.CONSTRAINT_TYPE = 'CHECK';

 

이제 DB구조와 DUMP파일 싱크가 맞게 되었음.