请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

飞鸟流云
金牌服务用户   /  发表于:2025-6-3 10:57  /   查看:96  /  回复:5
1金币
顾问老师:

       您好!由于安全问题,升级mysql数据库至8.4,升级后活字格引入视图报错,截图如下,一开始是报ID出错,把视图的ID改成DWID也出错,需要把原始的数据表的ID字段改成其他的吗?

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

最佳答案

查看完整内容

大佬您好,查找到了一个类似的问题,咱们尝试一下,看看这个方案是否可以解决这个问题。 咱们在视图的SQL,中,给DWID这个字段,拼接一个空字符串,如下

5 个回复

倒序浏览
最佳答案
最佳答案
Grayson.Shang活字格认证 Wyn认证
超级版主   /  发表于:2025-6-3 10:57:28
来自 4#
大佬您好,查找到了一个类似的问题,咱们尝试一下,看看这个方案是否可以解决这个问题。

咱们在视图的SQL,中,给DWID这个字段,拼接一个空字符串,如下
  1. CONCAT(DWID, "") as DWID
复制代码

回复 使用道具 举报
Grayson.Shang活字格认证 Wyn认证
超级版主   /  发表于:2025-6-3 11:39:37
2#
大佬您好,从保存信息上来看,这个应该不是数据库和数据表结构的报错,而像是数据本身的报错,咱们数据表中的数据,ID或者说DWID这一列的数据唯一,但是咱们的数据表中,出现了重复值,所以数据表连接失败了,咱们可以在数据表中删除或者修改这一列重复的值,看看问题是否可以解决。
回复 使用道具 举报
飞鸟流云
金牌服务用户   /  发表于:2025-6-3 16:33:54
3#
本帖最后由 飞鸟流云 于 2025-6-3 16:34 编辑

在navicat中视图显示都是正常的,就是数据库升级后不行了,是否需要远程看看呢,设备编码是唯一id,DWID是允许重复的
回复 使用道具 举报
飞鸟流云
金牌服务用户   /  发表于:2025-6-3 21:31:40
5#
顾问老师,您好,按照您提供的方法解决了,请问是什么原因造成的呢?有完美避免的方法吗?
回复 使用道具 举报
Grayson.Shang活字格认证 Wyn认证
超级版主   /  发表于:2025-6-4 09:56:41
6#
飞鸟流云 发表于 2025-6-3 21:31
顾问老师,您好,按照您提供的方法解决了,请问是什么原因造成的呢?有完美避免的方法吗?

您好,这个问题是这样子的,在活字格中创建视图的时候,内部默认会生成一个主键,目的是让视图和数据表一样,在页面上存在数据当前行,方便业务设计。这个是活字格内部的逻辑,一般会找视图查询的结果中值为整数的列来设置,拼接了空字符串,就实现了类型转换,就不再选择这一列为主键,问题就消失了。

不过一般出现这种情况比较少,咱们可以先这样使用,这个问题是否可以避免,不好确定,我们尝试沟通一下,看看是否有办法可以避免。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部