gpt4 book ai didi

sql - 锁定插入件

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

我有一个非常简单的案例,但我有点困惑。我想插入一条记录,该记录必须是唯一的。因此,如果它存在,我需要替换它或删除并重新插入它。如果它不存在,我需要创建它 - 但需要担心其他人进行检查并同时创建同一个。

任何人都可以推荐关于 MySQL 中锁定的“正确”方法吗?即阻止某人同时做同样的事情?

如果我这样做 - 我将无法防止并发插入具有相同条件的记录:

BEGIN TRANSACTION
SELECT (condtions) FOR UPDATE
if rows exist
UPDATE
else
INSERT
COMMIT

看起来很简单 - 显然对 SQL 非常生疏......

另外:

如果我持有锁,而另一个用户尝试读/写该锁所持有的内容 - 其他用户会收到错误,还是他们的处理会被延迟,直到锁被释放为止?

最佳答案

我相信您正在寻找REPLACE(如果存在,则删除并重新插入)- http://dev.mysql.com/doc/refman/5.1/en/replace.html

或者

insert ... on duplicate key update ... /* does not remove, just update */

关于sql - 锁定插入件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4413067/

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