mysql中数据的原子性

mysql中数据的原子性,mysql,stored-procedures,acid,mysql-function,Mysql,Stored Procedures,Acid,Mysql Function,其中一个客户要求我们在mysql中编写一个存储过程,该过程规定一个数据只能由一个资源访问(即使它们恰好有多个资源准备读取数据,谁先来,谁将首先获得锁并更改其标志,以便其他资源不能锁定表中的此数据行。 存储过程是为它编写的,我相信它类似于银行交易管理,但我不知道如何为它编写存储过程,任何帮助都将不胜感激,提前感谢 Step : 1 CREATE TABLE `test_db`.`Jobs` ( `id` INT NOT NULL, `JOB` VARCHAR(45) NOT NU

其中一个客户要求我们在mysql中编写一个存储过程,该过程规定一个数据只能由一个资源访问(即使它们恰好有多个资源准备读取数据,谁先来,谁将首先获得锁并更改其标志,以便其他资源不能锁定表中的此数据行。 存储过程是为它编写的,我相信它类似于银行交易管理,但我不知道如何为它编写存储过程,任何帮助都将不胜感激,提前感谢

    Step : 1

CREATE TABLE `test_db`.`Jobs` (
  `id` INT NOT NULL,
  `JOB` VARCHAR(45) NOT NULL,
  `status` VARCHAR(45) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE INDEX `id_UNIQUE` (`id` ASC));

Step : 2


DELIMITER $$
create procedure aabraKaDaabra(IN ids INT)
BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK;
DECLARE EXIT HANDLER FOR SQLWARNING ROLLBACK;
START TRANSACTION;
select id from Jobs where id=ids for update;
update Jobs set status = 'Submitted' where id=ids;
commit;
END$$; 

Step : 3


select * from test_db.Jobs order by id desc;

Note:
 Make sure that you have inserted a few of the value for the table.

Step : 4
call test_db.aabraKaDaabra(1);

这就是我所期望并解决它的,它像一个符咒一样发挥作用

那么你有什么线索呢?你是在问基本概念。你应该找到一个关于存储过程和事务的教程,而不是在So中要求快速回答。问答网站也是如此,你不能指望人们发布多页教程。如果你不理解ab如果没有事务或锁定,最终会冻结整个应用程序。@PanagiotisKanavos不是我没有编写存储过程,而是我没有为这种涉及事务并要求设置ACID属性的场景实现,正如我已经说过的,基本概念。查找教程或课程。