mysql ALTER 表查询中的 AFTER 关键字

mu *_*u 無 1 mysql alter-table

当我看到以下形式的更改查询时,我正在浏览一些代码:

alter table table_name add column tags varchar(25) default null after some_field;
Run Code Online (Sandbox Code Playgroud)

阅读Table的 mysql 文档ALTER, AFTER 关键字的目的是

要在表行中的特定位置添加列,请使用 FIRST 或 AFTER col_name。默认情况下最后添加列。您还可以在 CHANGE 或 MODIFY 操作中使用 FIRST 和 AFTER 对表中的列进行重新排序。

何时应该使用此关键字?是否建议频繁运行它来更改具有大量(数百万)行的表?

jue*_*n d 5

当您希望添加到现有表的新列不应位于列列表的末尾而是位于特定位置时,请使用它。

示例:现有表persons

persons: id firstname, lastname, password, permissions
Run Code Online (Sandbox Code Playgroud)

如果您现在想要添加新列,fullname您可能需要将其直接放在lastname列列表的后面而不是末尾。然后使用AFTER使其看起来像这样

persons: id firstname, lastname, fullname, password, permissions
Run Code Online (Sandbox Code Playgroud)

而不是那个

persons: id firstname, lastname, password, permissions, fullname
Run Code Online (Sandbox Code Playgroud)