source

Oracle: 하나의 필드를 업데이트하는 동안 행 복사

manysource 2023. 7. 24. 22:35

Oracle: 하나의 필드를 업데이트하는 동안 행 복사

참고:저는 제가 대답하고 싶은 질문을 하고 있습니다.이 질문은 데이터베이스가 제대로 설정되지 않았다는 것을 의미합니다.그래서 저는 테이블 설치 방식을 변경할 것을 제안하는 모든 답변을 부결시킬 것입니다.

하나의 값을 변경하는 동안 여러 행을 복제해야 합니다.

name   col1 col2
dave   a    nil
sue    b    nil
sam    c    5

필요한 항목이 되어야 합니다.

name   col1 col2
dave   a    nil
dave   a    a
sue    b    nil
sue    b    a
same   c    5

이 표의 모든 항목에 대한 IE:col2 is null테이블에 새 항목을 만듭니다.name그리고.col1복사된 것은 무엇입니까?col2이라a.

사용:

INSERT INTO table
  (name, col1, col2)
SELECT t.name, t.col1, 'a'
  FROM TABLE t
 WHERE t.col2 IS NULL

그것은 두 가지 모두를 가정하지 않습니다.name또는col1열이 기본 키이거나 둘 중 하나에 고유한 제약 조건이 있습니다.

이걸로 충분할까요?

INSERT INTO yourtable
       (SELECT name, col1, 'a'
          FROM yourtable 
         WHERE col2 is NULL);

열 수가 많은 경우 원하는 데이터를 임시 테이블에 복사하고 원하는 대로 임시 테이블의 데이터를 변경한 다음 임시 테이블의 내용을 원본으로 다시 복사하고 임시 테이블을 삭제할 수 있습니다.

언급URL : https://stackoverflow.com/questions/3095998/oracle-copy-row-while-updating-one-field