如何使用MySQL更改(剥离)多个列名称

时间:2014-12-16 20:34:05

标签: mysql

我有一个包含列名的表,如下所示:     BLAH_Q1_NAME,BLAH_BLAH_Q2_AGE,BLAH_UGLY_BLAH_Q3_DATE_OF_BIRTH等。

我希望能够更改列名以去除“Q#”部分之前的所有名称,这样我最终会得到如下所示的列名:     Q1_NAME,Q2_AGE,Q3_DATE_OF_BIRTH等

此表中有40多个变量,禁止我手动执行此操作。 (我希望!!)有没有办法在MySQL中做到这一点?谢谢!

1 个答案:

答案 0 :(得分:0)

没有MySQL命令可以让您快速重命名40列,但您可以使用随机脚本语言来帮助您编写查询来为您执行此操作。

$ perl -le'print "alter table MyTable ". (join ", ", map { "change BLAH_Q${_}_NAME Q${_}_NAME INT" } 1..40)'

(截断)输出:

alter table MyTable change BLAH_Q1_NAME Q1_NAME INT, change BLAH_Q2_NAME Q2_NAME INT, change BLAH_Q3_NAME Q3_NAME INT, change BLAH_Q4_NAME Q4_NAME INT, change BLAH_Q5_NAME Q5_NAME INT