개발/Database
-
[MariaDB] MariaDB 에서 ROW NUMBER() 사용하기개발/Database 2018. 1. 23. 15:23
페이징 기능에 꼭 필요한 기능은 아마도 쿼리 실행 결과 출력된 각 행마다 순번을 매겨주는 ROWNUM 일 것이다. 오라클과 티베로에서는 몇 번 ROWNUM 을 써서 쿼리를 짜본 적이 있으나Maria DB에서도 똑같이 선언하면 당연히 안 될 것 같아서 구글 검색 시작 일단 공식 문서 => https://mariadb.com/kb/en/library/row_number/MariaDB에서는 ROW_NUMBER()를 써서 구현해주면 될 것 같다. Syntax는 아래와 같다고 한다.ROW_NUMBER() OVER ( [ PARTITION BY partition_expression ] [ ORDER BY order_list ] ) 오잉?? 제법 다른 DB에서 쓰던 것과 비슷한 모양새가 나온다.Workbench에서 ..
-
PL/SQL 없이 한 테이블의 평균값을 구하여 다른 테이블에 UPDATE 하기개발/Database 2016. 12. 8. 14:40
무려 2년전 파이널 프로젝트 때 실제 코드 작성을 시작한 이후로 내가 제일 많은 시간을 투자했던 부분은 바로 DB였다.이 글도 당시 파이널 프로젝트 종료 직후에 삽질한게 너무 아까운 나머지 정리할 겸 비공개로 작성해놓고 검토하기 전에 갑자기 대형 프로젝트에 들어가는 바람에 묻힐 뻔 하다가 이제서야 발굴했다. 사용자들이 어떤 상품에 대해 별점을 입력하면 해당 상품에 대한 별점 평균을 계산하고,그 값을 다시 상품 테이블의 '평점' 컬럼 값으로 입력해주는 구조를 만들어내고 싶었다.항상 아무 생각도 없이 썼던 기능이었고, 필요한 로직도 다 이해했으니 금방 만들겠거니 했는데 금방 만들기는 개뿔....대략 3일동안 끙끙댔던 것 같다. 별점이 입력되는 순간 avg()를 써서 다른 테이블에 업데이트하는 트리거를 하나 ..