프로그래밍/SQL 59

PK 값 추가하기(+ SQL Error [955] [42000]: ORA-00955: 기존의 객체가 이름을 사용하고 있습니다.)

PK 값 추가하기 ALTER TABLE CLOSE DROP PRIMARY KEY; ALTER TABLE CLOSE ADD CONSTRAINT "CLOSE_PK" PRIMARY KEY ("CODE","CLOSE_DT"); 📌SQL Error [955] [42000]: ORA-00955: 기존의 객체가 이름을 사용하고 있습니다. 에러 뜨는 경우 인덱스에 PK 명이 지워지지 않아서 임 인덱스가 있는 경우에는 제약조건과 인덱스를 한번에 삭제해 주는 것이 좋음 (방법은 아래에) 조회를 통해 PK명이 있는지 확인 👇 SELECT OBJECT_NAME, OBJECT_TYPE FROM USER_OBJECTS WHERE OBJECT_NAME LIKE '%CLOSE%'; 인덱스 삭제 DROP INDEX CLOSE_PK; ..

프로그래밍/SQL 2021.12.16

테이블 전체 백업

1️⃣ 테이블(데이터) 백업 하기 CREATE TABLE 백업테이블명 AS SELECT * FROM 백업대상테이블명; ex) CREATE TABLE USER_BACK AS SELECT * FROM USER; 위의 쿼리를 실행하면 테이블 생성 뿐 아니라 데이터까지 복사됨 단, 코멘트는 복사되지 않음 2️⃣ 데이터 복원 하기 DELETE FROM 기존테이블명; INSERT INTO 기존테이블명 SELECT * FROM 백업테이블명; ex) DELETE FROM USER; INSERT INTO USER SELECT * FROM USER_BACK; 3️⃣ 데이터 개수 확인 SELECT COUNT(*) FROM 기존테이블명; SELECT COUNT(*) FROM 백업테이블명; ex) SELECT COUNT(*) ..

프로그래밍/SQL 2021.08.26

[Oracle] 위, 아래 ROW 값 가져오기(LAG, LEAD)

LAG 함수 이전 행(ROW)의 데이터 가져오기 LAG(REGION_ID) OVER (ORDER BY REGION_ID) SELECT STUDENT_ID, STUDENT_NAME, LAG(STUDENT_ID) OVER (ORDER BY STUDENT_ID) 이전행ID, LAG(STUDENT_NAME) OVER (ORDER BY STUDENT_ID) 이전행NAME FROM STUDENT ORDER BY STUDENT_ID LEAD 함수 다음 행(ROW)의 데어터 가져오기 LEAD(REGION_ID) OVER (ORDER BY REGION_ID) SELECT STUDENT_ID, STUDENT_NAME, LEAD(STUDENT_ID) OVER (ORDER BY STUDENT_ID) 다음행ID, LEAD(ST..

프로그래밍/SQL 2021.07.14