将列名更改为 MySQL 表中的第一行

Posted

技术标签:

【中文标题】将列名更改为 MySQL 表中的第一行【英文标题】:Change Column names to first row in MySQL Table 【发布时间】: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 将它们放在一个带有一个查询的数组中)。 【参考方案1】:

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

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

【讨论】:

以上是关于将列名更改为 MySQL 表中的第一行的主要内容,如果未能解决你的问题,请参考以下文章

怎样一个表中的2个查询结果合并到一个表中的两列

将 Python Pandas 中的列名从日期时间对象更改为字符串?

左外连接代码的不明确列名

mysql基本语句1

如何使用Java在Spark中将数据库的列名更改为大写

无法在 ETL 过程中使用 Pandas 和 SQLAlchemy 将列名从 CSV 更改为 SQL Server DB