mysql ALTER TABLE

寫作背景


MySQL 的ALTER TABLE操作常令DBA聞而變色,即使有Percona的OSC保駕護航,依然不堪輕易出手,但不是所有的ALTER TABLE都會引起表重建,從而需要花費數個小時甚至數天才能完成,本文對這3者作出簡單區別,希望在萬不得已時能是最後的一根稻草。


ALTER COLUMN

語法:

ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}

作用:

設置或刪除列的默認值。該操作會直接修改.frm文件而不涉及表數據。所以,這個操作非常快。

例子:

mysql> alter table film alter column rental_duration set default 5;
mysql> alter table film alter column rental_duration drop default;



CHANGE COLUMN

語法:

CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRST|AFTER col_name]

作用:

列的重命名、列類型的變更以及列位置的移動

例子:

ALTER TABLE MyTable CHANGE COLUMN foo bar VARCHAR(32) NOT NULL FIRST;
ALTER TABLE MyTable CHANGE COLUMN foo bar VARCHAR(32) NOT NULL AFTER baz;


MODIFY COLUMN

語法:
MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name]
作用:除了列的重命名之外,他乾的活和CHANGE COLUMN是一樣的例子:
ALTER TABLE MyTable MODIFY COLUMN foo VARCHAR(32) NOT NULL AFTER baz;


原文地址:

http://blog.itpub.net/26515977/viewspace-1208252/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章