prosource

수정할 열이 ID 열이 아닙니다.

probook 2023. 6. 27. 22:23
반응형

수정할 열이 ID 열이 아닙니다.

열이 있는 테이블을 만들었습니다.S_ROLL NUMBER(3) NOT NULL이제 이 열을 ID 열로 만들고 싶습니다.이 명령을 사용했습니다.

alter table students
modify
(
S_ROLL NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY
);

그러면 이 오류가 발생합니다.

S_ROLL NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY
*
ERROR at line 4:
ORA-30673: column to be modified is not an identity column

단순히 기존 열을 IDITY 열로 수정하는 것이 지원되지 않기 때문에 이 오류가 발생합니다.

해결책은 새 열을 추가한 다음 기존 열을 삭제하는 것입니다(데이터도 관리해야 함).

새 열을 생성하지 않으려는 경우 대체 솔루션:

CREATE SEQUENCE s_roll_seq
     START WITH 1 -- here last id + 1
   INCREMENT BY 1;

ALTER TABLE students
    MODIFY S_ROLL NUMBER DEFAULT s_roll_seq.NEXTVAL;

기존 열은 열을 식별하도록 수정할 수 없으므로 지원되지 않습니다.따라서 아래 쿼리를 사용하여 새 열을 추가할 수 있습니다.

ALTER TABLE students ADD (S_ROLL_NEW NUMBER(3) GENERATED ALWAYS AS IDENTITY);

언급URL : https://stackoverflow.com/questions/34972855/column-to-be-modified-is-not-an-identity-column

반응형