SQL 개발자를 사용하여 자동 증가 열을 설정하는 방법
Oracle SQL Developer에서 열이 자동으로 증가하도록 설정하려면 어떻게 해야 합니까?폼이 비활성화되는 이유는 무엇입니까?
주의: 이미지에는 데이터 모델러가 표시되지만 질문과 답변에서는 기존 데이터베이스 편집에 대해 설명합니다.
PK를 자동으로 증가시키려면 해당 기본 키의 ID 열 속성을 설정해야 합니다.
- 테이블을 마우스 오른쪽 버튼으로 클릭하고 "편집"을 선택합니다.
- "Edit" Table" 창에서 "columns"를 선택한 후 PK 열을 선택합니다.
- 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에서 열을 자동으로 증가시키려면 -
- 연결 탭에서 데이터베이스 연결을 엽니다.
- [ Tables ]섹션을 전개하여 자동 증분으로 변경할 컬럼이 있는 테이블을 오른쪽 클릭하여 [Edit...]를 선택합니다.
- [ Columns ]섹션을 선택하고 자동 증분할 컬럼을 선택합니다([Primary Key]컬럼).
- 그런 다음 열 목록 아래에 있는 "ID 열" 섹션을 클릭하고 유형을 "없음"에서 "열 시퀀스"로 변경합니다.
- 기본 설정을 그대로 유지하거나 원하는 경우 시퀀스 및 트리거 이름을 변경한 다음 확인을 클릭합니다.
이제 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
'programing' 카테고리의 다른 글
조건부로 "ui-sref"를 실행하는 방법은 무엇입니까? (0) | 2023.02.25 |
---|---|
JSON 오브젝트에서는 값의 시퀀스가 중요합니까? (0) | 2023.02.25 |
각도 JS에서 양식 제출 시 작업을 위해 preventDefault 또는 false를 반환할 수 없습니다. (0) | 2023.02.25 |
JSON Return을 사용한 PHP 스크립트에 대한 jQuery AJAX 호출 (0) | 2023.02.25 |
반응: 기능 컴포넌트에 소품 전달 (0) | 2023.02.25 |