这个简单的事务在竞争条件下安全吗?

tvokkenx  于 2021-06-25  发布在  Mysql
关注(0)|答案(0)|浏览(192)

假设我有这样一个存储过程:

CREATE PROCEDURE incrementSomeNum()
BEGIN
    START TRANSACTION;  # Not sure if this line is necessary.

    DECLARE a INT;
    SELECT someValue INTO a FROM someTable WHERE id = 1;
    UPDATE someTable SET someValue = a + 1 WHERE id = 1;

    COMMIT; # And this
END;

现在在我的客户机中,我有这样的代码,在线程中运行。

connection = connectionPool.getConnection()
connection.query("CALL incrementSomeNum();");
connection.close();

这在比赛条件下安全吗?
(假设我使用的是mysql,表使用的是innodb引擎。)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题