【问题标题】:Change Column names to first row in MySQL Table将列名更改为 MySQL 表中的第一行
【发布时间】:2016-09-22 09:59:35
【问题描述】:

我使用PHPMyAdminimport 选项将CSV 文件导入为SQL 表(因为我发现这是最简单的)。现在列名是“COL 1, COL 2,...”,所需的列名是表中的第一行。

如何将列名更改为第一行中的值(对于数据库的所有表)?

Here 是一种一次更改一个列名的方法,但我在数据库的每个表中都有太多列名,我想一次将其应用于所有表。

有没有一种比较简单的方法来做到这一点?或者我应该在导入 CSV 文件时尝试合并它吗?

【问题讨论】:

  • 您可以编写一个脚本来执行此操作,但最简单和最好的方法可能是再次导入您的数据,这次检查选项“文件的第一行包含表格列名。”,因为您的数据类型现在也可能是错误的(因为您可能不(想要)只有 varchar 列)
  • @Solarflare 我最终做到了。但是我想知道写一个脚本会不会很困难?
  • 当我写下我正在考虑一个 php 脚本时,它应该是直截了当的:show tables 获取表,为每个表 show columns from table 获取数据类型,获取并删除第一行表格(有时可能很难识别),为每一列做alter table table change oldname newname datatype。您的链接的脚本版本(但没有更正可能通过重新导入的数据类型)。在 sql 存储过程中,您可以使用 information_schema,并且对列有更难的时间(php 将它们放在一个带有一个查询的数组中)。

标签: mysql database phpmyadmin


【解决方案1】:

导入时,有一个“文件的第一行包含表格列名(如果不选中,第一行将成为数据的一部分)”的复选框。

选中该框将使用第一行作为列名,从而使您不必编写任何额外的脚本或手动更改任何内容。

【讨论】:

    猜你喜欢
    • 2019-01-14
    • 1970-01-01
    • 2017-01-09
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-25
    相关资源
    最近更新 更多