Skip to content

APIJSON能不能保证事务啊 #270

Closed

Description

@han-1023

前提:数据库表格之间没有任何关系
例子:添加一条数据到流水表 根据流水的账户id会锁定账户表主键id从而改变余额信息
像这样的操作一个要添加数据到表格,一个要修改数据,APIJSON的话一次请求不能完成的,这种的话怎么保证事物呢?

Activity

  1. TommyLemon commented on Jul 15, 2021

    @TommyLemon
    Member

    增删改默认启用事务,但不支持同时 既增又删 这种两个以上操作,可以用远程函数做另一种操作
    #101

  2. han-1023 commented on Jul 15, 2021

    @han-1023
    Author

    调用远程函数的话意思是在增加数据的请求体里面调用远程函数 后端写修改sql语句是吗

  3. TommyLemon commented on Jul 15, 2021

    @TommyLemon
    Member

    对

  4. han-1023 commented on Jul 15, 2021

    @han-1023
    Author

    谢谢

  5. waveBoom commented on Nov 18, 2021

    @waveBoom

    增删改默认启用事务,但不支持同时 既增又删 这种两个以上操作,可以用远程函数做另一种操作 #101

    这种说法 使用apijson新增,然后在远程函数里进行修改,那这两个操作是在一个事务里吗?
    如果不在,那这两个操作 同时成功或者失败 是不是就没办法保证?

  6. TommyLemon commented on Nov 18, 2021

    @TommyLemon
    Member

    增删改默认启用事务,但不支持同时 既增又删 这种两个以上操作,可以用远程函数做另一种操作 #101

    这种说法 使用apijson新增,然后在远程函数里进行修改,那这两个操作是在一个事务里吗? 如果不在,那这两个操作 同时成功或者失败 是不是就没办法保证?

    在,只要有一个失败,就整体失败,回滚事务。只有都成功整体才成功,提交事务。

  7. AwenJackson commented on Sep 1, 2022

    @AwenJackson
    Contributor

    增删改默认启用事务,但不支持同时 既增又删 这种两个以上操作,可以用远程函数做另一种操作 #101

    这种说法 使用apijson新增,然后在远程函数里进行修改,那这两个操作是在一个事务里吗? 如果不在,那这两个操作 同时成功或者失败 是不是就没办法保证?

    在,只要有一个失败,就整体失败,回滚事务。只有都成功整体才成功,提交事务。
    @TommyLemon 我这个也是这样做的,特意把postString的内容改成新增已有的数据,但是修改可以成功修改,然后到新增之后由于id主键重复,导致无法添加就会报错,然后不应该是之前修改的数据也会回滚吗?为什么没有回滚
    image

  8. TommyLemon commented on Nov 4, 2022

    @TommyLemon
    Member

    @TommyLemon 我这个也是这样做的,特意把postString的内容改成新增已有的数据,但是修改可以成功修改,然后到新增之后由于id主键重复,导致无法添加就会报错,然后不应该是之前修改的数据也会回滚吗?为什么没有回滚

    @AwenJackson
    不要重复 new Parser/Controller,这样保证不了事务,必须在同一个 Parser 内处理。
    可以传 DemoParser 实例 parser 到 DemoFunctionParser,然后 parser.parseResponse

  9. TommyLemon commented on Jan 30, 2024

    @TommyLemon
    Member

    增删改默认启用事务,但不支持同时 既增又删 这种两个以上操作,可以用远程函数做另一种操作 #101

    @han-1023 @28-HuaSheng @AwenJackson

    APIJSON 6.0 + 后已支持一个请求同时 增删改查
    #468

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions