분류 전체보기 60

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.

특정 값들을 찾아 변경하려고 할때 우리는 제목과 같은 에러를 볼수 있다. UPDATE school SET type = 'girls' WHERE message_type LIKE '%boy%'; 남자학교를 모두 찾아서 여자학교로 일괄 바꾸고 싶은 쿼리가 있다고 했을때라고 생각해보자. 에러 원인 테이블에서 update나 delete는 키값을 이용한 것만 허용하도록 하는데, 이를 좀더 넓은 범위의 sql를 통해 적용하려할때 위와 같은 에러가 뜨게된다. 해결 방안 1. 앞에 set sql_safe_updates=0; 을 붙여준다. 이는 일시적으로 safe모드를 해제하겠다는 뜻이다. 2. 맨밑에 보이는 Safe Updates(reject....)를 해제해준다. 이는 항상 safe모드가 해제된 상태를 유지함으로 본인..

개발 2020.08.05

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences Mysql에서 특정한 sql을 실행하던 도중 이러한 에러가 발생 특정 값을 찾은후 다른 값으로 변경하려 하던 도중 발견 원인 테이블에서 키값을 이용한 update나 delete만을 허용하도록 하고있는데, 그것을 제외한 넓은 범위의 쿼리를 적용하려 할때 발생 (하나의 레코드만을 이용한 update, delete만 가능) 해결방안 1. 쿼리앞줄에 set sql_safe_updates=0; 추가 (일..

DB/Mysql 2020.08.04

[mysql] INSERT 문

가장 기초적인 INSERT문은 1. INSERT INTO 테이블 (컬럼1, 컬럼2, 컬럼3) VALUES (값, 값, 값); 이다. 여러개의 값을 넣을때에는 INSERT INTO 테이블 (컬럼1, 컬럼2, 컬럼3) VALUES (값, 값, 값), (값, 값, 값), (값, 값, 값); 예) 학교라는 테이블이랑 학생이란 테이블이 매핑상태이다. 1 : N 구조 일경우 동일한 학생을 여러 학교에 INSERT 하고싶다. SELECT한 값에 INSERT 문을 넣으려면 insert into 학생 (school_id, 컬럼2, 컬럼3) select id, 값,값 from school; 로 사용하면 된다. 마찬가지로 프로시져를 만들어서 사용하는 방법도 있긴한데 이는 다음 포스팅으로..

DB/Mysql 2020.07.31

Connection com.mysql.cj.jdbc.ConnectionImpl@29ec2b10 marked as broken because of SQL

원인 : 스프링 프레임워크와 MySQL 사용시 특정 시간이 지나면 자동으로 커넥션을 잃어버리는 문제가 있다. 오랜시간 아무런 데이터 요청이 없으면 커넥션과 풀링을 해지하는 기능을 가지고 있기때문에 발생한다. 커넥션 풀이란? 커넥션 풀 이란 ? → 클라이언트 요청이 오면 connection을 빌려주고, 처리가 끝나면 다시 connection을 반납받아 pool에 저장하는 방식 그때그때 연결을 하게되면 시간이 소요되고 (2-3초) 컴퓨터내에서 다시붙는 시간은 굉장히 오래걸리는 시간이기때문에 미리 커넥션 풀을 여러개 만들어놓고 사용하고 반납하는 식으로 사용 Pooling 기법이란 ? 미리 데이터베이스 Connection을 여러 개 만들어서 특정 공간에 저장해 놓고, 여러 사용자가 필요할 때 마다 하나씩 꺼내서..

SpringBoot 2020.07.30

DataSource

배경 Spring Boot 2.0을 기점으로 Default DBCP가 Tomcat DBCP -> HikariCP로 바뀌었다. 또한, Pool에 생존할 수 있는 기간인 max-lifetime 설정도 Database의 wait_timeout 설정보다 최소 30초 이상 짧게 줄 것을 권고한다. → 밑에서 정정 Datasource 란 java에서 connection pool을 지원하기 위한 인터페이스 Hikari - 데이터베이스와의 Connection Pool을 관리 HikariCP는 요청이 들어오면 Thread가 커넥션을 요청하고, Hikari는 Pool내에 있는 커넥션을 연결 HikariCP Database와 의존 관계를 분리하였기에, 지속적으로 유효성을 체크하지 않아도 되며, 내부적으로 커넥션이 58초가 ..

SpringBoot 2020.07.30