複数のユーザーが同時に Web サイトにアクセスする Web サイトがあります。私のウェブサイトには、トランザクションでさらに使用される乱数を生成するために使用されるメソッドがあります。この乱数は、MYSQL で記述されたプロシージャを呼び出すことによって生成されます。
私の手順は以下の通り DELIMITER $$
BEGIN
declare trc_id INT;
SELECT distinct column1 into trc_id FROM table1 where column2=match_name and status='A';
set abc=trc_id+1;
update table1 set column1=str_id where column2=match_name and column1=trc_id;
END $$
DELIMITER ;
2 人のユーザーが同時にプロシージャを呼び出すと、両方とも同じ番号を取得し、矛盾が発生します。
メソッドを同期させましたが、プロシージャを同時に呼び出すと、ユーザーは同じ番号を取得しています。
私のコードが2つのサーバーに存在するもう1つのことは、両方が同時にアクティブですが、手順は1つだけです。