반응형
수정할 열이 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
반응형
'prosource' 카테고리의 다른 글
클래스가 주어지면 인스턴스에 메서드(Ruby)가 있는지 확인합니다. (0) | 2023.07.02 |
---|---|
MiniTest에서 단일 테스트를 실행할 수 있습니까? (0) | 2023.07.02 |
워드프레스 스테이징 환경 (0) | 2023.06.27 |
C/C++(GCC/G++)을 사용하는 Linux의 소켓 프로그래밍에서 파일 보내기 및 받기 (0) | 2023.06.27 |
vuex 계산 속성이 있는 vue가 업데이트되지 않음 (0) | 2023.06.27 |