收藏
回答

云开发中数据库记录独占问题?

框架类型 问题类型 终端类型 AppID 基础库版本
小程序 Bug 客户端 wx58496b2a660ad8c5 2.4.0

问个关于数据库读写的小白问题,比如有条记录数值为10,两个人同时读取数据,并执行加1的操作,希望得到的结果是记录值变成12,但如果两个人同时读写,读的时候都是10,第一个人操作完后变成了11,第二个人因为读的时候数值还没变成11,第二个人操作完后记录值还是11,会不会有情况出现?


如果有怎么避免呢,在数据库的操作上有没有好的办法?


另外能不能把某一个云函数做成独占模式,也就是同一时间只能有一个人调用,结束后另一个人才能调用,这样也能解决这个问题。


回答关注问题邀请回答
收藏

2 个回答

  • 禾店短剧系统
    禾店短剧系统
    2021-06-18

    没有相关进程时,可以直接将数据库从单用户模式改为多用户模式

    ALTER DATABASE RT_ABBPPM

    SET MULTI_USER

    有相关进程时,将数据库从单用户模式改为多用户模式(必须先杀掉有关进程)

    USE master;

    Go

    DECLARE @SQL VARCHAR(MAX);

    SET @SQL=''

    SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID)

    FROM master..sysprocesses

    WHERE dbid=DB_ID('RT_ABBPPM');

    EXEC(@SQL);

    GO

    ALTER DATABASE RT_ABBPPM SET MULTI_USER;


    2021-06-18
    有用 1
    回复
  • 痛快科技
    痛快科技
    2019-03-15

    可以参考:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-client-api/database/command.inc.html

    2019-03-15
    有用 1
    回复
登录 后发表内容