首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL ALTER TABLE ADD COLUMN 指定位置:FIRST / AFTER col_name 單列有效、多列不支援

     編輯:MySQL 綜合教學

語法規則

ALTER TABLE tbl_name
    ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name]
  | ADD [COLUMN] (col_name column_definition, ...)

關鍵結論

  • 單列添加:支援 FIRST(作第一列)或 AFTER existing_col(指定列之後)。
  • 多列添加:使用括號語法 ADD (col1 def1, col2 def2, ...) 時,不支援 FIRST/AFTER,新列只能依次追加到表尾。

示例

-- ✅ 單列指定位置
ALTER TABLE t1 ADD COLUMN c_new INT AFTER c_exist;

-- ✅ 單列置首
ALTER TABLE t1 ADD COLUMN c_first INT FIRST;

-- ❌ 多列指定位置(語法錯誤)
ALTER TABLE t1 ADD (c1 INT AFTER c2, c3 INT);  -- ERROR 1064

-- ✅ 多列追加尾部
ALTER TABLE t1 ADD (c1 INT, c2 VARCHAR(20));

工程建議

  1. 需精確控制列順序時,分多條單列 ALTER 執行(注意每條 ALTER 可能鎖表/重建,評估業務窗口)。
  2. 或採用 影子表遷移:CREATE TABLE new_t LIKE t; ALTER TABLE new_t ADD ...; INSERT INTO new_t SELECT ... FROM t; RENAME TABLE t TO old_t, new_t TO t;
  3. 列順序對性能影響極小(除非涉及覆蓋索引列順序),業務邏輯勿過度依賴 SELECT * 的列序。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved