找回密码
 立即注册

QQ登录

只需一步,快速开始

Chowhound

注册会员

4

主题

17

帖子

175

积分

注册会员

积分
175
最新发帖

[已处理] 更新数据库失败

Chowhound
注册会员   /  发表于:2021-10-21 21:24  /   查看:2619  /  回复:6
1金币
本帖最后由 Chowhound 于 2021-10-21 21:43 编辑

为什么更新时选特定行不提示更新失败,选择当前行会提示数据库更新失败
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

您好,这个是活字格中防止多人同时操作同一数据的机制,提示不是随机出现的,您可以试试哈:如果您这里选择的两个编号是一致的,就不会出现这个提示,如果不一致,就会出现。 这是因为您两个页面用的同一张表,导致前行出现了冲突,比如您第一次跳转时点的这一行: 此时客户表的当前行是: 这里选择10001并传值也是对客户表的操作,选择后,此时当前行为10001: 因此值回传后再提交数据会产生冲突,导致更新失 ...

6 个回复

倒序浏览
最佳答案
最佳答案
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-10-21 21:24:46
来自 4#
Chowhound 发表于 2021-10-22 09:00
但是两个提示更新失败是随机出现的

您好,这个是活字格中防止多人同时操作同一数据的机制,提示不是随机出现的,您可以试试哈:如果您这里选择的两个编号是一致的,就不会出现这个提示,如果不一致,就会出现。


这是因为您两个页面用的同一张表,导致前行出现了冲突,比如您第一次跳转时点的这一行:



此时客户表的当前行是:

这里选择10001并传值也是对客户表的操作,选择后,此时当前行为10001:

因此值回传后再提交数据会产生冲突,导致更新失败。

根据我的经验,像您的这种场景,一般客户表和联系人表都是分为两个表来分开维护的,这样不会产生冲突,且后期维护和复用也比较方便。

本帖子中包含更多资源

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

x
回复 使用道具 举报
Li.Zhou活字格认证
银牌会员   /  发表于:2021-10-21 22:48:53
2#
这个问题产生的原因是触发了活字格的并发限制,
主要是为了防止一条数据被同时修改造成数据的混乱与错误。
提交的时候才会去校验,提交的时候如果数据发生了变化,就会触发校验
参考
更新数据库失败,当前行已被其他人编辑
https://gcdn.grapecity.com.cn/fo ... 8&fromuid=63778
更新数据库失败,当前行已被其他人编辑
https://gcdn.grapecity.com.cn/fo ... 4&fromuid=63778
回复 使用道具 举报
Chowhound
注册会员   /  发表于:2021-10-22 09:00:28
3#
Li.Zhou 发表于 2021-10-21 22:48
这个问题产生的原因是触发了活字格的并发限制,
主要是为了防止一条数据被同时修改造成数据的混乱与错误。 ...

但是两个提示更新失败是随机出现的
回复 使用道具 举报
Chowhound
注册会员   /  发表于:2021-10-22 10:19:10
5#
但是我给ai选择kh20211021002并传值更新失败显示但是我选10001并传值更新失败显示

本帖子中包含更多资源

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

x
回复 使用道具 举报
Li.Zhou活字格认证
银牌会员   /  发表于:2021-10-22 10:41:07
6#
Chowhound 发表于 2021-10-22 10:19
但是我给ai选择kh20211021002并传值更新失败显示但是我选10001并传值更新失败显示

你前一个报错是因为数据表已经存在这个编号,这个字段你勾选了唯一约束。
第二个就是当前行冲突了
回复 使用道具 举报
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-10-22 11:04:43
7#
大佬,您的问题主要是数据库结构设计导致的,建议您将客户表和联系人表分为两个表来分开维护的,这样不会产生冲突,且后期维护和复用也比较方便哈~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部