db 3

[Mysql] DataGrip Select문으로 조회 후 데이터 수정 안되는 이유

DataGrip에서 SELECT 문으로 몇 개의 컬럼만 조회했을 때 수정이 안 되는 문제가 발생했다. your_table 테이블에서select 문으로 column1, column2 를 조회했다. SELECT column1, column2 FROM your_table;조회 후 column2 값 200을 500으로 수정 후 커밋 버튼을 눌렀다.한데 업데이트가 되지 않고 렉이 걸렸다.락 걸린 테이블에 update문을 실행한 것처럼 커밋이 되지 않았다. 한데select * from your_table;로 조회 후 column2값을 수정하면 커밋이 된다. 이에 대한 몇 가지 이유와 해결 방법이 있다고 한다.테이블 전체 조회가 아닌 경우:SELECT 문으로 일부 컬럼만 조회했을 경우, DataGrip은 해당 결과를..

Dev/DB 2024.08.13

MySQL 동적 쿼리란?

MySQL 동적 쿼리란 무엇일까요?MySQL 동적 쿼리는 런타임에 데이터나 사용자 입력에 따라 쿼리의 일부 또는 전체를 변경하는 기능을 제공합니다. 즉, 미리 정의된 쿼리 문자열 대신 상황에 따라 쿼리를 조립하고 실행할 수 있다는 의미입니다.동적 쿼리의 장점유연성: 다양한 상황에 맞춰 쿼리를 조정할 수 있어 개발 및 유지 관리 작업이 용이합니다.재사용성: 기본 쿼리 구조를 재사용하면서 조건이나 데이터만 변경하여 여러 쿼리를 작성할 수 있습니다.보안: 사용자 입력을 쿼리에 직접 포함시키지 않고 준비된 문과 매개 변수를 사용하여 보안성을 높일 수 있습니다.동적 쿼리 구현 방법MySQL 동적 쿼리를 구현하는 방법은 여러 가지가 있습니다.문자열 연결: 문자열을 연결하여 쿼리 문자열을 직접 조립하는 방법입니다. ..

Dev/DB 2024.06.26

[MySQL] Unsafe query: 'Delete' statement without 'where' clears all data in the table 발생 이유는?

MySQL (및 대부분의 데이터베이스)에서 DELETE 문에 WHERE 절이 없으면 모든 데이터가 삭제되는 이유는 다음과 같습니다.1. 기본 동작:DELETE 문은 지정된 테이블에서 데이터를 삭제하는 명령입니다.WHERE 절은 삭제 조건을 지정하는 선택적 절입니다.2. WHERE 절 없이 모든 데이터 삭제:WHERE 절이 없으면 데이터베이스는 테이블의 모든 레코드가 삭제 조건을 충족한다고 가정합니다.따라서 테이블에 있는 모든 행(레코드)이 삭제됩니다.3. 의도하지 않은 데이터 손실 방지:WHERE 절 없이 DELETE 문을 실행하면 의도하지 않은 전체 데이터 손실이 발생할 수 있습니다.이를 방지하기 위해 대부분의 데이터베이스 시스템은 WHERE 절이 없는 DELETE 문을 실행할 때 경고 메시지 또는 오..

Dev/DB 2024.06.22