DATABASE/MySQL

    [MySQL] 데이터베이스 제약 조건 확인 하는 방법

    [MySQL] 데이터베이스 제약 조건 확인 하는 방법

    회사 업무에서 데이터 원복을 위해 삭제해야하는 일이 생겼다. 그래서 별 생각없이 늘 하던대로 정산 데이터를 삭제하려고 했는데 생각보다 복잡했다. 시스템 버전이 있는데 현재는 거의 폐기 수준의 로우 버전이라 참조하고 있는 테이블도 달랐고 제약조건에 따라 순서대로 지워야 하였지만 테이블 제약 조건을 확인하고 지우는 방법을 터득하기 위해 여러번 뒹글고 나서 정리한다. 🤔 제약 조건 확인 방법 SELECT * FROM information_schema.key_column_usage WHERE TABLE_SCHEMA = '스키마' AND REFFERENCED_TABLE_NAME = '테이블명'; 우선, 제약 조건을 확인하기 위해서는 삭제 하려는 데이터의 테이블이 어디에서 참조 하고 있는지를 알아야한다. 상단 쿼리..

    [MySQL] Lost Connection to MySQL server during query

    [MySQL] Lost Connection to MySQL server during query

    🤔 문제 발견 Mysql workbench 프로그램에는 쿼리 수행 시간(30초)이 기본값으로 설정되어 있다. 30초가 넘어가는 경우 프로그램에서는 Error Code : 2013. 메시지를 출력하며 종료된 것 처럼 보이지만, SHOW PROCESSLIST; 상기 명령어를 통해서 확인을 해보면, 아직 수행 중인 쿼리를 확인 할 수 있다. 이미 30초가 넘도록 수행되었지만 결과를 얻지 못한 쿼리는 슬로우 쿼리라고 보는 것이 옳다. 🔥 조치 쿼리 튜닝이 반드시 필요하며, 일단 다른 시스템에서 접근 했을 때 자원을 점유하고 있게되면 사용자가 결과값을 늦게 받거나 못받을 경우가 생길 수 있다. 급한 불을 끄기 위해 쿼리를 죽일 수 있도록 했다. KILL QUERY [ID]; [ID] 부분은 수행 중인 쿼리를 확인..

    [MySQL] 내가 본 최악의 데이터 생성 쿼리문

    [MySQL] 내가 본 최악의 데이터 생성 쿼리문

    세상에 ... 이런 쿼리문이 현업에서 사용되고 있다니.. INSERT INTO table_A SELECT *, 'ID' as ID, now() as MOD_DT FROM table_B WHERE ID = 'ID' 테이블 컬럼이 많고 처리하기 귀찮으니 이렇게 처리한 것 같다.. 할많하안