修改資料表中的列的定義有四種不同的方式,下面分別瞭解下不同方式之間有什麼差異。
Modify Column
- 可以修改列的定義但不能重新命名
- 修改列定義比
Change
更方便 - 使用
First
或After
可以重新排列列順序
ALTER TABLE TABLE_NAME
MODIFY [COLUMN] col_name column_definition
[FIRST | AFTER col_name]
複製程式碼
Alter Column
- 僅用於修改列的預設值
ALTER TABLE TABLE_NAME
ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
複製程式碼
Change Column
- 既可以重新命名列,也可以修改列的定義
- 比
Modify
和Rename
功能強大,但是犧牲了便利性。- 如果不重新命名,需要對列命名兩次
- 如果僅重新命名,需求重新指定列定義
- 使用
First
或After
可以重新排列列順序
ALTER TABLE TABLE_NAME
CHANGE [COLUMN] old_col_name new_col_name column_definition
[FIRST|AFTER col_name]
複製程式碼
Rename Column
- 可以重新命名列,但不能修改列定義
- 重新命名列比
Change
更方便
ALTER TABLE TABLE_NAME
RENAME COLUMN old_col_name TO new_col_name
複製程式碼
重新命名 | 重定義 | 效能 | 列排序 | |
---|---|---|---|---|
MODIFY | ❎ | ✅ | 高 | ✅ |
RENAME | ✅ | ❎ | 高 | ❎ |
CHANGE | ✅ | ✅ | 低 | ✅ |
ALTER | ❎ | 僅更新預設值 | 高 | ❎ |