【发布时间】:2016-09-22 09:59:35
【问题描述】:
我使用PHPMyAdmin 的import 选项将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