DBMS
-
[MySQL] DB에 이상한 데이터가 있어요! (MySQL Strict mode)DBMS/MySQL 2023. 10. 2. 18:02
발단 데이터 중에 누가봐도 이상한게 있었다. 테스트 데이터겠지, 그 때 어플리케이션 코드가 이상했겠지로는 설명이 안되는 최신데이터로 말이다. MySQL Strict Mode MySQL 5.7 이상 버전들은 Strict Mode 가 기본설정이지만, 그 이하 버전들은 Strict Mode 가 꺼져있다. Strict Mode 가 꺼져있다면 에러가 나야 할 쿼리들이 에러 없이 실행된다. varchar(4) 로 설정했지만 10글자의 String 을 INSERT 문으로 작성하여도 성공적으로 실행된다. 아래 포스팅에 잘 설명되어 있으니 참고하자. MySQL Strict mode 끄기/켜기 MySQL 5.7 부터는 STRICT_MODE 가 기본 설정이라고 하니 별도의 설정 작업이 필요없다. www.lesstif.com..
-
[MySQL] view 테이블 생성시 Access denied; you need (at least one of) the SUPER or SET_USER_ID privilege(s) for this operationDBMS/MySQL 2023. 10. 2. 15:56
원인 view, function 등을 생성할 때 definer 를 지정해주지 않으면 접속한 계정으로 definer 가 설정 됨 해결 create definer 구문을 사용하여 생성 create definer = my_account@`%` view v_user_product_info as (select ...) Reference ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER or SET_USER_ID privilege(s) for this operation MySQL 관련 문의사항이 들어온 내용을 정리 한 내용입니다. 내용은 이렇습니다. 유저가 함수를 생성하는데 에러가 발생한다는 것입니다. 확인한 에러는 아래와 같습니다. E..
-
[MySQL] 날짜 차이 시, 분, 초로 가져오기DBMS/MySQL 2023. 5. 9. 19:28
단순 개인 색인용 포스팅입니다. TIMESTAMPDIFF SELECT ABS(TIMESTAMPDIFF(minute, temp.lag_reg_time , temp.reg_date)) as diff Reference [MySQL] 날짜 차이 가져오기 (DATEDIFF, TIMESTAMPDIFF 함수) ▶MySQL 날짜 차이 가져오기 (DATEDIFF, TIMESTAMPDIFF 함수) ▶설명 MySQL에서 두 날짜간의 차이를 가져올 때 사용하는 함수가 두 가지가 있습니다. 단순히 일 차이를 가져올 때 사용하는 것이 DATEDIFF 함수 extbrain.tistory.com
-
[MySQL 5.7] 이전 행, 다음 행 가져오기DBMS/MySQL 2023. 5. 9. 19:17
MySQL 8 버전 부터는 LAG(이전 행) 와 LEAD(다음 행) 함수를 지원한다. 하지만 MySQL 5.7 은 없지롱 ㅎㅎ.. 스칼라 서브쿼리로 대체할 수 있다. LAG (이전 행 값 구하기) SELECT a.login_id, a.name, a.reg_time (SELECT reg_time FROM user b WHERE a.login_id = b.login_id AND a.reg_time > b.reg_time ORDER BY reg_time DESC LIMIT 1) as lag_reg_time FROM user a LEAD (다음 행 값 구하기) SELECT a.login_id, a.name, a.reg_time (SELECT reg_time FROM user b WHERE a.login_id =..
-
[MySQL] Mac에서 서버 시작, 종료DBMS/MySQL 2021. 11. 3. 16:28
# 실행 mysql.server start brew services start mysql # 종료 mysql.server stop brew service stop mysql # 터미널을 닫았다고 서비스가 종료되진 않는다 brew services list : 브루에서 관리하는 서비스들의 실행상태를 보여줌 top -o size : 실행되고 있는 서비스들 메모리 사용량 순으로 정렬 top -o cpu : 실행되고 있는 서비스들 cpu 사용량 순으로 정렬
-
[DB] SQL 표준 DB transaction isolation(격리수준) 개념DBMS 2021. 10. 27. 18:04
# 트랜잭션 격리수준 4 단계 1. READ_UNCOMMITED DB에 커밋되지 않은 데이터를 읽을 수 있다. Dirty Read 로 인해 데이터 정합성에 심각하게 문제를 야기하므로, 실제 서비스에서 거의 쓰이지 않는다. # Dirty Read READ_UNCOMMITED 상태에서 발생 먼저 발생한 트랜잭션의 데이터를 참조하는 현상 (예시) 1. A 트랜잭션에서 1번 사원의 직급을 Junior 에서 Senior 로 바꿈 2. B 트랜잭션에서 1번 사원을 조회하고, 연봉을 2800에서 3000으로 수정함 3. A 트랜잭션 ROLLBACK 4. B 트랜잭션 COMMIT 5. 1번사원은 결국 직급이 Senior, 연봉이 3000 인 데이터로 변경 2. READ_COMMITED 커밋된 데이터만 읽는다. Dirt..