gpt4 book ai didi

mysql 并发

转载 作者:行者123 更新时间:2023-11-29 09:07:25 25 4
gpt4 key购买 nike

很抱歉,如果我的问题之前已经被问过,或者它太明显了,但我真的需要澄清这一点。感谢您的帮助。

在多用户界面中,如果来自不同用户的相同事务同时到达服务器,会发生什么?

我有下一张表:

create table table_x (
cod char(2) not null,
desc varchar(45) not null,
primary key (cod)
);

这些调用同时到达服务器:

call sp_s('1','a');
call sp_s('1','b');
call sp_s('1','c');

sp_s(在 param_a char(2) 中,在 param_b varchar(45) 中)的作用是:

declare var_count tinyint default 0;

set var_count=
(select count(*)
from table_x
where cod=param_a);

if(var_count=0) then
insert into table_x values (param_a, param_b);
else
update table_x set desc=param_b
where cod=param_a;
end if;

如果注册表不存在,则将其插入,但如果存在,则 sp 对其进行更新。

这是一个不使用自动增量的好方法吗?如果我不使用 auto_increment,避免并发的最佳方法是什么?

非常感谢您抽出时间。

最佳答案

这取决于事务隔离级别。但是,您可以在重复更新时使用 insert into...,并在 cod 上使用唯一索引。

关于mysql 并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6695848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com