teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

加筆

2020/11/03 22:20

投稿

ikatako
ikatako

スコア270

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,5 @@
1
1
  ###実現したいこと
2
- レコードのINSERT時に、「あるカラムの最大値+1」を自動で入れたいのですが、そんな都合のいい方法ございますか?
2
+ レコードのINSERT時に、「グループごとのカラムの最大値+1」を自動で入れたいのですが、そんな都合のいい方法ございますか?
3
3
 
4
4
  ###テーブル構成
5
5
  以下はコメントのテーブルで、`order_number`でコメントの並び順が指定されています。

2

誤字訂正

2020/11/03 22:20

投稿

ikatako
ikatako

スコア270

title CHANGED
File without changes
body CHANGED
@@ -63,9 +63,9 @@
63
63
 
64
64
  例えば現状で`thread_ID = 12`には2件のレコードがあったとして、`order_number`は最大`2`ということですが、そこに上記実行しますと`order_number`に`227`が入るといった感じです。
65
65
 
66
- この`228`が何の数字なのかわかりません。`p_comments`テーブルのレコードは2121件ですし、思い当たるフシがないです。
66
+ この`227`が何の数字なのかわかりません。`p_comments`テーブルのレコードは2121件ですし、思い当たるフシがないです。
67
67
 
68
- さらにその上でもう一度実行すると`278`が入りまして、これは`277`の次なので正常ですが、そもそも`227`でなく`3`を入れたかったので困っています。
68
+ さらにその上でもう一度実行すると`228`が入りこれは`227`の次なので正常ですが、そもそも`227`でなく`3`を入れたかったので困っています。
69
69
 
70
70
  ###バージョン
71
71
  MySQLは5.7ですが、もし上位のバージョンでのみ可能であればアップデートも視野に入れています。

1

発生している問題を追記しました

2020/11/03 19:20

投稿

ikatako
ikatako

スコア270

title CHANGED
File without changes
body CHANGED
@@ -50,11 +50,23 @@
50
50
  [https://b.0218.jp/20121112133354.html](https://b.0218.jp/20121112133354.html)
51
51
 
52
52
  この方法に従って次のSQLを実行したのですが、実現には至りませんでした。
53
+
53
54
  ```SQL
54
55
  INSERT INTO p_comments( `order_number`, `ID`, `thread_ID` )
55
56
  SELECT COALESCE(MAX(`order_number`)+1,1), ?, ?
56
57
  FROM p_comments;
57
58
  ```
59
+ ###発生している問題
60
+ 上記「実現には至りませんでした」について詳細補足します。
61
+
62
+ エラーはないのですが、`order_number`が想定より大きな数字になってしまいます。
63
+
64
+ 例えば現状で`thread_ID = 12`には2件のレコードがあったとして、`order_number`は最大`2`ということですが、そこに上記実行しますと`order_number`に`227`が入るといった感じです。
65
+
66
+ この`228`が何の数字なのかわかりません。`p_comments`テーブルのレコードは2121件ですし、思い当たるフシがないです。
67
+
68
+ さらにその上でもう一度実行すると、`278`が入りまして、これは`277`の次なので正常ですが、そもそも`227`でなく`3`を入れたかったので困っています。
69
+
58
70
  ###バージョン
59
71
  MySQLは5.7ですが、もし上位のバージョンでのみ可能であればアップデートも視野に入れています。
60
72
  宜しくお願い致します。