-
[SQL] UPDATE 시 ROW_NUMBER() 함수 사용하기DB 2021. 7. 3. 16:44
데이터가 이미 들어있는 테이블을 장고 ORM에 쓰려고 하는데 PK로 지정된 컬럼이 없다는 오류가 발생했다.
그래서 급하게 id 컬럼을 추가하고 ROW_NUMBER() 함수를 통해 id 값을 업데이트하였다.
이 때 구글링으로 찾아서 사용한 SQL문은 아래와 같다.
가정
1. a라는 테이블에 이름과 전화번호 컬럼이 존재한다.
2. 이름을 오름차순으로, 이름이 같은 경우에는 전화번호를 오름차순으로 해서 행 번호를 id 컬럼 값으로 UPDATE한다.
사용한 DBMS는 PostgreSQL이다.
UPDATE a SET id = x.id FROM (SELECT name , phone_number , ROW_NUMBER() OVER (ORDER BY name, phone_number) AS id FROM a ORDER BY name, phon_number) x where a.name = x.name and a.phone_number = x.phone_number
'DB' 카테고리의 다른 글
다중 태그 검색 SQL문 (0) 2021.10.31 Ubuntu에서 PostgreSQL 설치 및 데이터 저장 위치 변경하기 (0) 2021.10.26 데이터베이스별 boolean 데이터 타입(PostgreSQL, MySQL, Oracle) (0) 2021.10.15 PostgreSQL timestamp vs timestamptz (0) 2021.10.14 [SQL] UPDATE 시 LIKE 조건에 컬럼 이름 사용하기 (0) 2021.07.12