Oracle의 SQL Server에서 IDENTITY INSERT ON/OFF를 대체할 명령은 무엇입니까?
이 쿼리(여기서는 단순화)를 T-SQL에서 ORACLE로 마이그레이션해야 합니다.
SET IDENTITY_INSERT table ON
INSERT INTO table (id, value) VALUES (1, 2)
SET IDENTITY_INSERT table OFF
id
SQL Server의 ID 필드입니다.
ORACLE에 시퀀스가 있는 동일한 테이블이 있는데 시퀀스를 비활성화하고 MAX(id) + 1로 다시 시작하도록 설정하는 방법을 보여주는 스니펫을 찾을 수 없었습니다.
ORACLE 전문가가 도와줄 수 있습니까?
고마워, 로드리고.
Oracle에서 ID를 비활성화할 필요는 없습니다.시퀀스를 사용하고 있으므로 해당 삽입에 사용하지 마십시오.
즉, 대신에
insert into table (id, values) values (table_seq.nextval, 2)
당신이 사용합니다
insert into table (id, values) values (1, 2)
시퀀스를 다시 시작하는 것에 대한 당신의 두 번째 질문에 대해, 저는 그것이 여기 SO에서 대답되었다고 생각합니다.
이런 식으로 오라클 시퀀스로 채워진 열을 건드리는 것은 나쁜 생각인 것 같습니다.Oracle에서는 일반적으로 트리거가 있는 시퀀스를 통해 열이 채워진 상태를 유지합니다.이 기능을 켜고 끄기 시작하고 시퀀스 애드립을 재설정하면 다른 프로세스에서 필요할 때 시퀀스를 사용할 수 없거나 이미 사용되었지만 커밋되지 않은 값으로 재설정될 위험이 있습니다.
max+1 값이 끝나면 시퀀스를 삭제하고 다시 생성합니다.
언급URL : https://stackoverflow.com/questions/2758990/which-command-would-replace-identity-insert-on-off-from-sqlserver-in-oracle
'source' 카테고리의 다른 글
이 인라인 블록 요소는 왜 아래로 밀려나 있는 것입니까? (0) | 2023.10.02 |
---|---|
GCC 출력을 stdout으로 만드는 방법? (0) | 2023.09.27 |
Angular2의 생산 모드와 개발 모드의 차이점은 무엇입니까? (0) | 2023.09.27 |
여권 로컬 반송 오류 400개의 잘못된 요청이 각도에 있습니다. (0) | 2023.09.27 |
파이썬에서 "0, 0 == (0, 0)"이 "(0, False)"와 같은 이유는 무엇입니까? (0) | 2023.09.27 |