mysql DDL操作增加列数据异常

本文记录了在MySQL中为多个表添加新字段时遇到的乱码问题及解决方法。当尝试添加包含汉字的注释时,部分字段添加成功而部分失败。通过检查发现失败的情况与字符编码有关。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

遇到一个有点诡异的问题,想给mysql增加列,语句如下:

#板块 - 新增全屏广告位(点击)字段
ALTER TABLE `lanrch_panel` ADD COLUMN `monitorClick` varchar(2048) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '广告海报点击时信息URL列表' AFTER `description`;
ALTER TABLE `lanrch_panel_log` ADD COLUMN `monitorClick` varchar(2048) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '广告海报点击时信息URL列表' AFTER `description`;
ALTER TABLE `lanrch_panel_pre` ADD COLUMN `monitorClick` varchar(2048) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '广告海报点击时信息URL列表' AFTER `description`;
ALTER TABLE `lanrch_panel_service` ADD COLUMN `monitorClick` varchar(2048) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '广告海报点击时信息URL列表' AFTER `description`;
#板块 - 新增全屏广告位(显示)字段
ALTER TABLE `lanrch_panel` ADD COLUMN `monitorShow` varchar(2048) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '广告海报显示时信息URL列表' AFTER `description`;
ALTER TABLE `lanrch_panel_log` ADD COLUMN `monitorShow` varchar(2048) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '广告海报显示时信息URL列表' AFTER `description`;
ALTER TABLE `lanrch_panel_pre` ADD COLUMN `monitorShow` varchar(2048) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '广告海报显示时信息URL列表' AFTER `description`;
ALTER TABLE `lanrch_panel_service` ADD COLUMN `monitorShow` varchar(2048) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '广告海报显示时信息URL列表' AFTER `description`;
#板块 - 新增门户显示的图标类型字段
ALTER TABLE `lanrch_panel` ADD COLUMN `iconNew` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '三期门户显示的图标' AFTER `description`;
ALTER TABLE `lanrch_panel_log` ADD COLUMN `iconNew` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '三期门户显示的图标' AFTER `description`;
ALTER TABLE `lanrch_panel_pre` ADD COLUMN `iconNew` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '三期门户显示的图标' AFTER `description`;
ALTER TABLE `lanrch_panel_service` ADD COLUMN `iconNew` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '三期门户显示的图标' AFTER `description`;
#板块 - 新增门户显示的图标类型字段
ALTER TABLE `lanrch_panel` ADD COLUMN `iconType` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '门户显示的图标类型' AFTER `description`;
ALTER TABLE `lanrch_panel_log` ADD COLUMN `iconType` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '门户显示的图标类型' AFTER `description`;
ALTER TABLE `lanrch_panel_pre` ADD COLUMN `iconType` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '门户显示的图标类型' AFTER `description`;
ALTER TABLE `lanrch_panel_service` ADD COLUMN `iconType` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '门户显示的图标类型' AFTER `description`;

monitorClick和monitorShow可以正常插入,iconNew和iconType就不行

报以下错误:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''涓夋湡闂ㄦ埛鏄剧ず鐨勫浘鏍? AFTER `description`' at line 1

诡异就诡异在,有些能插入有些不能,并且如果单条执行,是可以插入的,那说明不是脚本有问题

那会是什么问题呢?  相信细心的你已经发现了,这里面有乱码,说明是汉字的字符编码有问题

解决办法:将描述改为非汉字,或者,去其他没有问题的脚本拷贝汉字过来修改。

执行结果:

Query OK, 14 rows affected
Records: 14  Duplicates: 0  Warnings: 0

Query OK, 215 rows affected
Records: 215  Duplicates: 0  Warnings: 0

Query OK, 24848 rows affected
Records: 24848  Duplicates: 0  Warnings: 0

Query OK, 14 rows affected
Records: 14  Duplicates: 0  Warnings: 0

Query OK, 146 rows affected
Records: 146  Duplicates: 0  Warnings: 0

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值