【发布时间】:2017-12-23 19:42:58
【问题描述】:
我正在编写一系列 MySQL 查询来操作表中的数据。我有一张由我无法控制的系统自动生成的表。当我得到它时,该表有几列:
ID、姓名、日期、标题和包含十进制值的列。
每次外部系统自动生成表格时,它都会将包含十进制值的值命名为当前日期。目前,该列名为“16_Jul_17”,因为那是系统运行的最后一天。
我需要一种可靠的方式来查询表(并重命名列),而无需知道十进制值列的当前名称。有没有办法执行以下选项之一:
- 在不知道列名的情况下重命名十进制值列
- 我可以使用 information_schema 来获取名称,但是如何使用它来重命名列
【问题讨论】:
-
我应该注意,查询是在数据仓库工具中执行的,我不完全确定它将接受哪些 mysql 命令的功能,但发现它接受一个非常大的我尝试过的大多数命令。
-
设计了按日期命名列的外部系统的人应该得到pantsed。
-
使用动态 SQL 查询 info 模式来获取不在表中的列名(ID、名称、日期、标题)。如果剩下 1 列,那就是您需要更改的列名。如果超过 1 则结构发生变化,您需要错误地询问要做什么(因为您需要向 not in 添加一个新列)
-
@BillKarwin - 阿门!
标签: mysql alter-table information-schema