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}}
    -
제목 작성자 날짜
공대여자
공대여자
mins01
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자