質問編集履歴
3
文法の修正
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
### 発生している問題・エラーメッセージ
|
|
2
2
|
以下のようなテーブルとレコードがあリ、iD1と2のレコードにのみ行ロックをかけたいのですが、
|
|
3
|
-
SELECT FOR UPDATEのカラム指定によってテーブルロックとな
|
|
3
|
+
SELECT FOR UPDATEのカラム指定によってはテーブルロックとなる場合があります。
|
|
4
4
|
|
|
5
5
|
**Userテーブル**
|
|
6
6
|
|カラム|型|index|その他|
|
2
書式改善
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -8,8 +8,10 @@
|
|
|
8
8
|
|id|int(11)|primary key|auto_increment|
|
|
9
9
|
|name|varchar(255)||
|
|
10
10
|
|email|varchar(255)|index|
|
|
11
|
+
|
|
11
12
|
**レコード**
|
|
12
13
|
|id|name|email|
|
|
14
|
+
|:--|:--:|--:|
|
|
13
15
|
|1|太郎|test1@example.com|
|
|
14
16
|
|2|二郎|test2@example.com|
|
|
15
17
|
|3|花子|test3@example.com|
|
1
誤字修正
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
### 試したこと
|
|
21
21
|
抽出カラムをアスタリスクにすると、想定通りID=1,2のみ行ロックをとることができます。
|
|
22
22
|
```sql
|
|
23
|
-
SELECT
|
|
23
|
+
SELECT * FROM user WHERE id IN (1, 2) FOR UPDATE; => 行ロック
|
|
24
24
|
```
|
|
25
25
|
しかし、抽出カラムをIDのみにすると、テーブルロックとなってしまい、ID3,4の更新も出来なくなってしまいます。
|
|
26
26
|
```sql
|