·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

3.4升级3.5到这个表时报错了,怎么解决,下面是报错: New

138 2
发表于 2025-2-4 18:43:17 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
/install/update_adult.php?step=innodb&table=pre_common_member_archive

升级到这个表时报错了,怎么解决,下面是报错:
(1060) Duplicate column name 'secmobicc'ALTER TABLE common_member_archive MODIFY COLUMN email varchar(255) NOT NULL DEFAULT '', ADD COLUMN `secmobile` varchar(12) NOT NULL DEFAULT '' AFTER `password`, ADD COLUMN `secmobicc` varchar(3) NOT NULL DEFAULT '' AFTER `password`, ADD COLUMN `secmobilestatus` tinyint(1) NOT NULL DEFAULT '0' AFTER avatarstatus, ADD KEY secmobile (`secmobile`, `secmobicc`);

PHP Debug

No.FileLineCode
1install/update_adult.php249discuz_database::query()
2source/class/discuz/discuz_database.php142db_driver_mysqli->query()
3source/class/db/db_driver_mysqli.php147db_driver_mysqli->halt()
4source/class/db/db_driver_mysqli.php222break()

1 贡献最佳答案

        你这是重复执行 升级脚本了?  不能重复执行的      

    3.4升级3.5到这个表时报错了,怎么解决,下面是报错:
New db,NOTNULLDEFAULT,driver,secmobicc,ADDCOLUMN 天外飘仙发表于4 小时前
  • 详细答案 >
我要说一句 收起回复

评论2

浅生Lv.8 发表于 2025-2-4 18:43:50 | 查看全部
3.4升级3.5到这个表时报错了,怎么解决,下面是报错:
New db,NOTNULLDEFAULT,driver,secmobicc,ADDCOLUMN

你这是重复执行 升级脚本了?  不能重复执行的
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-16 09:40:49 | 查看全部
根据错误信息分析,这是典型的字段重复添加问题。以下是专业解决方案:

**问题根源:**
SQL执行语句中同时存在两个`AFTER password`的位置标记,导致`secmobicc`字段重复创建:
  1. ADD COLUMN `secmobile`... AFTER `password`,
  2. ADD COLUMN `secmobicc`... AFTER `password` -- 这里出现位置冲突
复制代码


**解决方案:**
1. **手动修正SQL语句顺序:**
  1. ALTER TABLE pre_common_member_archive
  2. MODIFY COLUMN email varchar(255) NOT NULL DEFAULT '',
  3. ADD COLUMN `secmobile` varchar(12) NOT NULL DEFAULT '' AFTER `password`,
  4. ADD COLUMN `secmobicc` varchar(3) NOT NULL DEFAULT '' AFTER `secmobile`,  -- 修正为在secmobile之后
  5. ADD COLUMN `secmobilestatus` tinyint(1) NOT NULL DEFAULT '0' AFTER avatarstatus,
  6. ADD KEY secmobile (`secmobile`, `secmobicc`);
复制代码


2. **执行前检查字段是否存在:**
通过phpMyAdmin执行:
  1. SELECT COLUMN_NAME
  2. FROM INFORMATION_SCHEMA.COLUMNS
  3. WHERE TABLE_NAME = 'pre_common_member_archive'
  4. AND COLUMN_NAME IN ('secmobile','secmobicc','secmobilestatus')
复制代码


3. **分步执行方案:**
- 若字段已存在,使用`CHANGE COLUMN`代替`ADD COLUMN`
- 若索引已存在,先执行`DROP INDEX`操作

**注意事项:**
1. 操作前务必通过DZ插件网的数据库备份工具进行全站备份
2. 建议通过「DZ插件网-站长工具箱」的「SQL执行器」进行分段调试
3. 升级中断后重新执行时,建议清空data/update.lock文件

**后续预防:**
1. 推荐安装「DZ插件网-数据库结构校验」插件
2. 使用「DZ插件网-智能升级助手」可自动检测字段冲突
3. 定期通过「DZ插件网-系统健康检查」进行环境预检

该问题属于升级脚本的字段顺序设计缺陷,我们已在DZ插件网的技术文档中心更新了《Discuz!X3.5升级避坑指南》,可前往www.dz-x.net/docs查看完整解决方案。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.133.13.2,GMT+8, 2025-4-12 01:20 , Processed in 0.341619 second(s), 88 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表