回答編集履歴
1
SELECT FOR UPDATEにし忘れていた
test
CHANGED
@@ -8,7 +8,9 @@
|
|
8
8
|
|
9
9
|
```SQL
|
10
10
|
|
11
|
+
-- トランザクションに入る
|
12
|
+
|
11
|
-
--
|
13
|
+
-- (実際には、DBライブラリやフレームワークの機能を使ったほうがいいかもしれません)
|
12
14
|
|
13
15
|
BEGIN TRANSACTION;
|
14
16
|
|
@@ -16,7 +18,7 @@
|
|
16
18
|
|
17
19
|
-- 特定のユーザーのログイン行だけロックを掛ける
|
18
20
|
|
19
|
-
SELECT MAX(login_time) AS latest FROM table_name WHERE user_id = '***';
|
21
|
+
SELECT MAX(login_time) AS latest FROM table_name WHERE user_id = '***' FOR UPDATE;
|
20
22
|
|
21
23
|
|
22
24
|
|