programing

SQL 개발자를 사용하여 자동 증가 열을 설정하는 방법

mailnote 2023. 2. 25. 21:32
반응형

SQL 개발자를 사용하여 자동 증가 열을 설정하는 방법

Oracle SQL Developer에서 열이 자동으로 증가하도록 설정하려면 어떻게 해야 합니까?폼이 비활성화되는 이유는 무엇입니까?

Oracle SQL 개발자

주의: 이미지에는 데이터 모델러가 표시되지만 질문과 답변에서는 기존 데이터베이스 편집에 대해 설명합니다.

PK를 자동으로 증가시키려면 해당 기본 키의 ID 열 속성을 설정해야 합니다.

  1. 테이블을 마우스 오른쪽 버튼으로 클릭하고 "편집"을 선택합니다.
  2. "Edit" Table" 창에서 "columns"를 선택한 후 PK 열을 선택합니다.
  3. ID Column 탭으로 이동하여 Type으로 Column Sequence를 선택합니다.그러면 트리거와 시퀀스가 생성되고 시퀀스가 기본 키에 연결됩니다.

자세한 내용은 아래 그림을 참조하십시오.

여기에 이미지 설명 입력

// 출처: http://techatplay.wordpress.com/2013/11/22/oracle-sql-developer-create-auto-incrementing-primary-key/

유감스럽게도 oracle은 mysql과 같은 auto_increment를 지원하지 않습니다.당신은 그것을 얻으려면 조금 더 노력해야 합니다.

이게 네 테이블이라고 해-

CREATE TABLE MYTABLE (
  ID NUMBER NOT NULL,
  NAME VARCHAR2(100)
  CONSTRAINT "PK1" PRIMARY KEY (ID)
);

시퀀스를 작성해야 합니다.

CREATE SEQUENCE S_MYTABLE
START WITH 1
INCREMENT BY 1
CACHE 10;

그리고 방아쇠-

CREATE OR REPLACE TRIGGER T_MYTABLE_ID
BEFORE INSERT
ON MYTABLE
REFERENCING NEW AS NEW
FOR EACH ROW
BEGIN
  if(:new.ID is null) then
  SELECT S_MYTABLE.nextval
  INTO :new.ID
  FROM dual;
  end if;
END;
/

ALTER TRIGGER "T_MYTABLE_ID" ENABLE;

SQL Modeler에서 자동 증가를 수행할 수 있습니다.열 속성 창에서 : General을 클릭하고 Auto Increment 상자를 선택합니다.그런 다음 자동 증가 창이 활성화됩니다.

업데이트: Oracle 12c 이후에는 트리거 및 시퀀스보다 더 나은 자동 증분 필드를 생성할 수 있는 옵션이 있습니다.

  • 테이블을 마우스 오른쪽 버튼으로 클릭하고 "편집"을 선택합니다.
  • "Edit" Table" 창에서 "columns"를 선택한 후 PK 열을 선택합니다.
  • Identity Column 탭으로 이동하여 Type으로 "Generated as Identity"를 선택하고 시작 필드와 증분 필드에 모두 1을 입력합니다.그러면 이 열이 자동으로 증가합니다.

아래 이미지 참조

여기에 이미지 설명 입력

SQL 문에서

ID 열은 Oracle 12c에서 사용할 수 있습니다.

 create table t1 (
     c1 NUMBER GENERATED by default on null as IDENTITY,
     c2 VARCHAR2(10)
     );

또는 시작값과 증분값을 지정하여 ID 열에 삽입하지 않도록 합니다(GREATED ALways). (또한 Oracle 12c+만 해당)

create table t1 (
    c1 NUMBER GENERATED ALWAYS as IDENTITY(START with 1 INCREMENT by 1),
    c2 VARCHAR2(10)
    );

편집 : "ORA-30673: column to modified is not identity column" 등의 오류가 발생한 경우 새 컬럼을 생성하여 오래된 컬럼을 삭제해야 합니다.

@tom-study님 말씀이 옳았습니다.데이터 모델러에서도 가능합니다.

표를 두 번 클릭한 다음 열 섹션으로 이동합니다.여기서 자동 증분이 되는 열을 두 번 클릭합니다.일반 섹션에는 "auto increment" 확인란이 있습니다. 이 확인란을 선택하면 됩니다.

그런 다음 "자동 증가" 섹션으로 이동하여 사용자 정의할 수도 있습니다.

이 스크립트를 저장하고 데이터 모델러에게 SQL 스크립트를 생성하도록 요청하면 자동 증가를 나타내는 시퀀스와 트리거가 표시됩니다.

이 게시물을 찾았는데, 좀 오래된 것 같긴 하지만, 제 새로운 발견에 대해 모두에게 알려줘야겠다고 생각했어요.

Windows에서 Oracle SQL Developer 4.0.2.15를 사용하고 있습니다.당사의 데이터베이스는 Windows에서 실행되는 Oracle 10g(버전 10.2.0.1)입니다.

Oracle에서 열을 자동으로 증가시키려면 -

  1. 연결 탭에서 데이터베이스 연결을 엽니다.
  2. [ Tables ]섹션을 전개하여 자동 증분으로 변경할 컬럼이 있는 테이블을 오른쪽 클릭하여 [Edit...]를 선택합니다.
  3. [ Columns ]섹션을 선택하고 자동 증분할 컬럼을 선택합니다([Primary Key]컬럼).
  4. 그런 다음 열 목록 아래에 있는 "ID 열" 섹션을 클릭하고 유형을 "없음"에서 "열 시퀀스"로 변경합니다.
  5. 기본 설정을 그대로 유지하거나 원하는 경우 시퀀스 및 트리거 이름을 변경한 다음 확인을 클릭합니다.

이제 ID 열(프라이머리 키)이 자동으로 증가하지만 시퀀스는 1부터 시작됩니다.ID를 특정 지점으로 늘려야 하는 경우 시퀀스에 대해 몇 가지 변경 문을 실행해야 합니다.
게시물에는 더 자세한 내용과 극복 방법이 나와 있습니다.

나는 여기서 해결책을 찾았다.

Oracle에는 자동 증분 열이 없습니다.넌 시퀀스와 방아쇠가 필요해다음은 그 방법을 설명하는 임의의 블로그 투고입니다.http://www.lifeaftercoffee.com/2006/02/17/how-to-create-auto-increment-columns-in-oracle/

Oracle SQL Developer를 사용한 방법:왼쪽 창의 연결 아래에 있는 "시퀀스"를 마우스 오른쪽 버튼으로 클릭하고 상황에 맞는 팝업에서 새 시퀀스 만들기를 선택합니다.상세 내용을 기입합니다.스키마 이름, sequence_name, 속성(값, 최소값, 최대값, 증분값 등으로 시작)을 선택하고 확인을 클릭합니다.이 auto_increment를 사용하는 키가 있는 테이블이 있다고 가정하고 이 테이블에 삽입하는 동안 이 속성을 사용하는 필드에 "your_sequence_name.nextval"을 입력합니다.이게 도움이 될 것 같아! :)

왼쪽 메뉴에서 워크시트로 테이블을 드래그 앤 드롭하면 옵션 목록이 나타납니다."Insert"를 선택한 후 적용하고 완료하십시오.

언급URL : https://stackoverflow.com/questions/10990347/how-to-set-auto-increment-column-with-sql-developer

반응형