DBMS 별 자동증가값 처리방법 sequence , serial , identity ,auto_increment

  • sequence 사용
    • Oracle
      • CREATE SEQUENCE orders_seq
        START WITH 1000
        INCREMENT BY 1
        NOCACHE
        NOCYCLE;
    • Pgsql
      • CREATE SEQUENCE tablename_colname_seq;
        CREATE TABLE tablename (
            colname integer DEFAULT nextval('tablename_colname_seq') NOT NULL
        );
    • Cubrid
      • create serial s_tmp
        update ... set seqno = s_tmp.next_value
    • ALTIBASE :
      • Oracle과 유사(문법과 사용법 자체도 거의 같음)
  • AutoIncrement 사용
    • Mysql : auto_increment
      • CREATE TABLE animals (
             id MEDIUMINT NOT NULL AUTO_INCREMENT,
             name CHAR(30) NOT NULL,
             PRIMARY KEY (id)
        )
    • Mssql : identity
      • create table test(
          no int identity(1,1) NOT NULL,
          name varchar(256) NULL
        )  
    • Informix : serial
      • create table t (
          id serial,
          image clob
        ) put image in (image_sbs);
         
    • Sqlite : auto_increment
      • CREATE TABLE t_test(
           id INTEGER PRIMARY KEY AUTOINCREMENT,
           name VARCHAR(10)
        );
      • 참고
        • CREATE TABLE t1(
            a INTEGER PRIMARY KEY,
            b INTEGER
          );
          INSERT INTO t1 VALUES(NULL,123); = INSERT INTO t1 VALUES((SELECT max(a) FROM t1)+1,123);
          (AUTOINCREMENT 와는 동작이 다르다.)
    • DB2 : identity
      • CREATE TABLE DEPT
             (DEPTNO SMALLINT NOT NULL 
                   GENERATED ALWAYS AS IDENTITY 
          ( START WITH 500, INCREMENT BY 1),
              DEPTNAME VARCHAR (36)  NOT NULL ,
              MGRNO    CHAR (6),
             ADMRDEPT SMALLINT NOT NULL ,
             LOCATION CHAR (30))
    • Pgsql : serial (# 7.3.x부터 내부적으로 시퀀스를 만듬)
      • CREATE TABLE tablename (
            colname SERIAL
        );
  • ETC
    • Firebird : trigger
      • Firebird에서 auto increment는 generator를 만들어 insert 발생시 트리거를 실행시켜
        generator의 값을 증가시키고 그값을 테이블에 넣어주는 방식을 사용함.
댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
목록형 📷 갤러리형
제목
[기본형] HTML (with 부트스트랩5.3 , jquery 3.7, vue.js)
유용한 리눅스(LINUX) 명령어
[공지] 기술 게시판
3.31
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.10
4.11
4.12
4.13
4.14
4.15
4.16
4.18
4.19
4.20
4.21
4.22
4.23
4.24
4.25
4.26
4.27
4.28
4.29
4.30
5.1
5.2
5.3
5.4