【问题标题】:MySQL ALTER TABLE sort columns alphabeticallyMySQL ALTER TABLE 按字母顺序对列进行排序
【发布时间】:2016-03-04 17:50:22
【问题描述】:

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

什么是合适的ALTER TABLE 查询?

【问题讨论】:

  • 当您更改订单时,INSERT INTO tab VALUES 会怎样?您确定您的旧版应用到处都指定了列吗?
  • 我不会那样做...
  • 修改列的顺序没有意义...每次从表中选择(select field_a, field_b, ... from your_table)或插入数据时(@ 987654324@)
  • 虽然它是一个遗留应用程序,但它是用 Django 编写的,没有原始的 sql 查询。这会改变你的看法吗?

标签: mysql database alter-table


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-29
    • 1970-01-01
    • 2012-12-08
    • 2013-05-02
    • 2014-02-08
    • 1970-01-01
    • 1970-01-01
    • 2017-05-22
    相关资源
    最近更新 更多