MySQL字段添加注释,但不改变字段的类型

之前在导数据库数据的时候,忘记将字段的注释导过来了。现在需要将所有字段都加上注释(崩溃)。由于导数据的过程比较长,业务那边从原始数据库导出了一个 Excel,里面有所有字段的注释,然后让我们根据这个注释一个个加。

MySQL添加注释语句

之前以为给MySQL字段添加注释很容易,但是找了下都是需要同时修改字段类型的,和我们的需求不符。比如

ALTER TABLE tb_name MODIFY COLUMN name col_type  COMMENT "注释";

上面的修改语句中都需要指定新的字段类型才能加新的注释,但是我们又不知道字段的具体类型,这个方式行不通。

最后在网上找了一个修改元数据表的方法来添加注释。

UPDATE information_schema.COLUMNS t  SET t.column_comment  = "注释" WHERE t.TABLE_SCHEMA= "schema1" AND t.table_name="tbl_name"  AND t.COLUMN_NAME= "col_name"

使用 Excel 拼接 SQL

业务给到我们的 Excel 文件内容如下:

inner_code trading_day prev_close_price open_price high_price low_price
内码 交易日 昨收 开盘价 最高价 最低价

第一行是表的具体字段,第二行是字段的具体注释。作为一个程序员,我发现这个操作可以通过 Excel 进行 SQL 拼接。具体做法如下:

step1:拷贝第一行的字段到另一个sheet页,并进行转列复制(见红色方框)

行转列后效果如下:

step2:将注释列进行同样的行转列复制

step3:通过Excel字符串拼语句进行拼接

我们只需要在C3列输入以下拼接语句就可以进行sql拼接了,然后使用Excel的下拉功能可以进行所有字段的注释脚本拼接。

 ="UPDATE information_schema.COLUMNS t  SET t.column_comment  = '" & A1 & "' WHERE t.TABLE_SCHEMA='schema1' AND t.table_name='tbl_name'  AND t.COLUMN_NAME='" & B2 & "';"

上面的拼接语句中:

  • 拼接用&
  • 拼接的内容需要用“”引起
  • 如果是日期单元格,拼接内容需要将其转为TEXT文本内容再进行拼接,否则会显示错误内容