Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySQL中锁定特定记录_Mysql_Locking_Nonblocking - Fatal编程技术网

在MySQL中锁定特定记录

在MySQL中锁定特定记录,mysql,locking,nonblocking,Mysql,Locking,Nonblocking,我将实施一个记录锁定机制,如下所示: Table1: Field: "ID" (AutoIncrement, Primary) Field: "Name" (Text) Field: "More fields..." Table2: Field: "ID" (Unique) 为了锁定表1中的特定记录,我将在表2中创建一个具有相同ID的记录。如果由于该记录已存在而导致创建失败,则该记录必须由另一个进程锁定,我将继续。如果成功,我就拥有锁,可以修改记录。完成后,我

我将实施一个记录锁定机制,如下所示:

Table1:
    Field: "ID" (AutoIncrement, Primary)
    Field: "Name" (Text)
    Field: "More fields..."

Table2:
    Field: "ID" (Unique)
为了锁定表1中的特定记录,我将在表2中创建一个具有相同ID的记录。如果由于该记录已存在而导致创建失败,则该记录必须由另一个进程锁定,我将继续。如果成功,我就拥有锁,可以修改记录。完成后,我将删除表2中的锁记录

我的问题是,这是否是实现每记录锁定的有效方法,如果不是,是否存在这样的情况

干杯, Charlie。

您可以使用基于行的锁定,
或者甚至不用对另一个表进行锁定,

(而是让mysql来处理竞争条件)

mysql的聪明人已经为您做了这件事——它被称为innodb事务引擎