개요

설명

ALTER 구문을 이용하여 테이블의 구조를 변경할 수 있다. 대상 테이블에 컬럼 추가/삭제, 인덱스 생성/삭제, 기존 컬럼의 타입 변경, 테이블 이름 변경, 컬럼 이름 변경 등을 수행하거나 테이블 제약 조건을 변경한다. TABLECLASS와 동의어이고, VIEWVCLASS와 동의어이다. COLUMNATTRIBUTE와 동의어이다.

구문

ALTER [ <class_type> ] <table_name> <alter_clause> ;

 

<class_type> ::= TABLE | CLASS | VCLASS | VIEW

 

<alter_clause> ::= ADD <alter_add> [ INHERIT <resolution_comma_list> ] | 

                   ADD { KEY | INDEX } [index_name] (<index_col_name>) |

                   ALTER [ COLUMN ] column_name SET DEFAULT <value_specifiation> |

                   DROP <alter_drop> [ INHERIT <resolution_comma_list> ] |

                   DROP { KEY | INDEXindex_name |

                   DROP FOREIGN KEY constraint_name |

                   DROP PRIMARY KEY |                   

                   RENAME <alter_rename> [ INHERIT <resolution_comma_list> ] |

                   CHANGE <alter_change> |

                   INHERIT <resolution_comma_list>

 

<alter_add> ::= [ ATTRIBUTE | COLUMN ] [(]<class_element_comma_list>[)] [ FIRST | AFTER old_column_name ] |

                CLASS ATTRIBUTE <column_definition_comma_list> |

                CONSTRAINT < constraint_name > <column_constraint> ( column_name )|

                FILE <file_name_comma_list> |

                METHOD <method_definition_comma_list> |

                QUERY <select_statement> |

                SUPERCLASS <class_name_comma_list>

 

<alter_change> ::= FILE <file_path_name> AS <file_path_name> |

                   METHOD <method_definition_comma_list> |

                   QUERY [ <unsigned_integer_literal> ] <select_statement> |

                   <column_name> DEFAULT <value_specifiation>

 

<alter_drop> ::= [ ATTRIBUTE | COLUMN | METHOD ]

                 <column_name_comma_list> |

                 FILE <file_name_comma_list> |

                 QUERY [ <unsigned_integer_literal> ] |

                 SUPERCLASS <class_name_comma_list> |

                 CONSTRAINT <constraint_name>

 

<alter_rename> ::= [ ATTRIBUTE | COLUMN | METHOD ]

                   <old_column_name> AS <new_column_name> |

                   FUNCTION OF <column_name> AS <function_name>

                   FILE <file_path_name> AS <file_path_name>

 

<resolution> ::= { column_name | method_name } OF <superclass_name>

                 [ AS alias ]

 

<class_element> ::= <column_definition> | <table_constraint>

 

<column_constraint> ::= UNIQUE [ KEY ] | PRIMARY KEY | FOREIGN KEY

 

<index_col_name> ::=

column_name [(length)] [ ASC | DESC ]

주의 사항

테이블의 소유자, DBA, DBA의 멤버만이 테이블 스키마를 변경할 수 있으며, 그 밖의 사용자는 소유자나 DBA로부터 이름을 변경할 수 있는 권한을 받아야 한다(권한 관련 사항은 권한 부여 참조).