MySQL ALTER TABLE按字母顺序排序列

时间:2015-11-30 23:07:31

标签: mysql database alter-table

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

适当的ALTER TABLE查询是什么?

1 个答案:

答案 0 :(得分:1)

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

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

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

为了创建上述查询,您只需要从旧表中获取列名并对其进行排序,就可以以编程方式执行以下操作:

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