ADD COLUMN 절

설명

ADD COLUMN 절을 사용하여 새로운 컬럼을 추가할 수 있다. FIRST 또는 AFTER 키워드를 사용하여 새로 추가할 컬럼의 위치를 지정할 수 있다.

새로 추가되는 컬럼이 NOT NULL 제약 조건이 있으나 DEFAULT 제약 조건이 없는 경우, 데이터베이스 서버 설정 파라미터인 add_column_update_hard_default가 yes이면 고정 기본값(hard default)을 갖게 되고, no이면 NOT NULL 제약 조건이 있어도 NULL 값을 갖게 된다. add_column_update_hard_default 및 고정 기본값에 대해서는 CHANGE, MODIFY 절을 참고한다.

구문

ALTER [ TABLE | CLASS | VCLASS | VIEW ] table_name

ADD [ COLUMN | ATTRIBUTE ] [(]<column_definition>[)] [ FIRST | AFTER old_column_name ]

 

column_definition ::=

column_name column_type

    { [ NOT NULL | NULL ] |

      [ { SHARED <value_specification> | DEFAULT <value_specification> }

          | AUTO_INCREMENT [(seed, increment)] ] |

      [ UNIQUE [ KEY ] |

          [ PRIMARY KEY | FOREIGN KEY REFERENCES

              [ referenced_table_name ]( column_name_comma_list )

              [ <referential_triggered_action> ... ]

          ]

      ] } ...

 

<referential_triggered_action> ::=

{ ON UPDATE <referential_action> } |

{ ON DELETE <referential_action> } |

{ ON CACHE OBJECT cache_object_column_name }

 

<referential_action> ::=

CASCADE | RESTRICT | NO ACTION | SET NULL

예제

CREATE TABLE a_tbl;

ALTER TABLE a_tbl ADD COLUMN age INT DEFAULT 0 NOT NULL;

INSERT INTO a_tbl(age) VALUES(20),(30),(40);

ALTER TABLE a_tbl ADD COLUMN name VARCHAR FIRST;

ALTER TABLE a_tbl ADD COLUMN id INT NOT NULL AUTO_INCREMENT UNIQUE;

ALTER TABLE a_tbl ADD COLUMN phone VARCHAR(13) DEFAULT '000-0000-0000' AFTER name;

 

SELECT * FROM a_tbl;

 

  name                  phone                         age           id

======================================================================

  NULL                  '000-0000-0000'                20         NULL

  NULL                  '000-0000-0000'                30         NULL

  NULL                  '000-0000-0000'                40         NULL

 

--adding multiple columns

ALTER TABLE a_tbl ADD COLUMN (age1 int, age2 int, age3 int);