MySQL ALTER TABLE 按字母顺序对列进行排序

MySQL ALTER TABLE sort columns alphabetically

我正在维护一个带有 MySQL 数据库的遗留应用程序,其中大多数表有 20 多列,少数有 100 多列。为了使它更友好,我正在尝试更改所有表格以按字母顺序排列所有列。

什么是合适的 ALTER TABLE 查询?

无法更改 mysql table 中的列顺序。但是,您可以使用订单中的列创建一个新的 table,例如:

CREATE TABLE newtable SELECT a,b,c,d,e,f,g FROM old_table_name

这样,您新创建的 table 将按照您定义的顺序包含列,您可以删除旧的 table 并将新的 table 重命名为旧名称。

为了创建上面提到的查询,您只需要从旧的 table 中获取列名并对它们进行排序,要以编程方式执行此操作,您可以使用如下内容:

SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA='database_name' AND TABLE_NAME = 'old_table_name' 
ORDER BY column_name