ADD COLUMN 절을 사용하여 새로운 컬럼을 추가할 수 있다. FIRST 또는 AFTER 키워드를 사용하여 새로 추가할 컬럼의 위치를 지정할 수 있다.
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;
csql> ;xr
=== <Result of SELECT Command in Line 1> ===
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);
;xr
1 command(s) successfully processed.