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

Discuz X3.4 用户表 主表 存档表 数据合并教程

295 1
发表于 2023-7-24 18:49:15 | 查看全部 阅读模式

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

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

×
1,登录后台,工具,计划任务,取消勾选 每日用户表优化

2,关闭站点,备份数据库,如果可以,全站备份更好

3,不要手贱去点 后台,站长,用户表优化

4,打开你的MYSQL管理工具,比如 phpMyAdmin

已下这些表都是需要修改的表pre_common_member
pre_common_member_archive

pre_common_member_count
pre_common_member_count_archive


pre_common_member_field_forum
pre_common_member_field_forum_archive


pre_common_member_field_home
pre_common_member_field_home_archive

pre_common_member_profile
pre_common_member_profile_archive

pre_common_member_status
pre_common_member_status_archive
删除重复内容

  1. ALTER IGNORE TABLE pre_common_member_archive ADD UNIQUE INDEX(`uid`)
复制代码
把 pre_common_member_archive 内容复制到 pre_common_member


  1. insert into pre_common_member select * from pre_common_member_archive
复制代码
再删除主表重复内容,清空存档表内容


上面做完基本就没事了,有强迫症的可以删除带有Archive的空表,备份的bak表都可以删除。
我要说一句 收起回复

评论1

Discuz智能体Lv.8 发表于 2025-3-19 08:22:12 | 查看全部
在Discuz X3.4中,用户表的主表和存档表的数据合并是一个常见的操作,尤其是在数据量较大时,Discuz会自动将部分用户数据存档到存档表中。为了确保数据的完整性和一致性,合并这些表是一个必要的步骤。以下是详细的步骤和注意事项:

### 1. 取消每日用户表优化计划任务
首先,登录到Discuz后台,进入“工具” -> “计划任务”,找到“每日用户表优化”任务,取消勾选该任务。这样可以避免在合并过程中系统自动进行优化操作,导致数据不一致。

### 2. 关闭站点并备份数据库
在进行任何数据库操作之前,务必关闭站点,并备份数据库。如果条件允许,建议进行全站备份,包括文件和数据库。这样可以确保在操作过程中出现问题时能够快速恢复。

### 3. 不要手动点击“用户表优化”
在后台的“站长” -> “用户表优化”功能中,不要手动点击优化按钮。这个操作可能会导致数据丢失或不一致,尤其是在你准备手动合并数据时。

### 4. 使用MySQL管理工具操作数据库
接下来,使用MySQL管理工具(如phpMyAdmin)来操作数据库。以下是需要操作的表:

- `pre_common_member` 和 `pre_common_member_archive`
- `pre_common_member_count` 和 `pre_common_member_count_archive`
- `pre_common_member_field_forum` 和 `pre_common_member_field_forum_archive`
- `pre_common_member_field_home` 和 `pre_common_member_field_home_archive`
- `pre_common_member_profile` 和 `pre_common_member_profile_archive`
- `pre_common_member_status` 和 `pre_common_member_status_archive`

### 5. 删除存档表中的重复内容
在合并数据之前,确保存档表中没有重复的数据。可以通过以下SQL语句来删除重复内容:

  1. ALTER IGNORE TABLE pre_common_member_archive ADD UNIQUE INDEX(`uid`);
复制代码


### 6. 将存档表数据复制到主表
接下来,将存档表中的数据复制到主表中。可以使用以下SQL语句:

  1. INSERT INTO pre_common_member SELECT * FROM pre_common_member_archive;
复制代码


### 7. 删除主表中的重复内容
在将存档表数据复制到主表后,可能会有重复的数据。可以通过以下SQL语句删除主表中的重复内容:

  1. DELETE FROM pre_common_member WHERE uid IN (SELECT uid FROM pre_common_member_archive);
复制代码


### 8. 清空存档表
在确认数据合并无误后,可以清空存档表:

  1. TRUNCATE TABLE pre_common_member_archive;
复制代码


### 9. 删除空表和备份表(可选)
如果你有强迫症,可以删除那些已经清空的存档表(带有`Archive`的表)。同时,备份的`.bak`表也可以删除,以节省数据库空间。

### 10. 重新启用站点
在完成所有操作后,重新启用站点,并检查用户数据是否正常。如果一切正常,合并操作就完成了。

### 注意事项:
- **备份**:在进行任何数据库操作之前,务必备份数据。
- **测试环境**:如果可能,建议在测试环境中先进行操作,确保没有问题后再在生产环境中执行。
- **数据库锁**:在操作过程中,可能会对数据库表进行锁定,导致站点暂时无法访问。因此,建议在低峰时段进行操作。

通过以上步骤,你可以成功合并Discuz X3.4中的用户主表和存档表数据。如果在操作过程中遇到问题,可以参考DZ插件网(https://www.dz-x.net)的相关文档或寻求技术支持。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

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

本版积分规则

图文热点
关闭

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

最新热评 加载中...
AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

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

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

您的IP:216.73.216.121,GMT+8, 2025-11-1 19:45 , Processed in 1.496490 second(s), 79 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

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