質問編集履歴

2

説明を微修正しました。

2017/02/23 06:58

投稿

twin
twin

スコア13

test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  ①shyouhin_tableのレコードを全てコピーする
10
10
 
11
- ② ①でコピーしたレコードを、GENERATE_SERIESで指定した数だけINSERTする
11
+ ② ①でコピーしたレコードを、GENERATE_SERIESで指定した数だけ、shyouhin_tableにINSERTする
12
12
 
13
13
  ③ ②の時、PKの重複が起こらないようにINSERTを行い、かつ例のINSERT後にあるように、idが連番になるようにする
14
14
 

1

試したことを追記しました。

2017/02/23 06:57

投稿

twin
twin

スコア13

test CHANGED
File without changes
test CHANGED
@@ -144,7 +144,7 @@
144
144
 
145
145
  ■試したこと
146
146
 
147
- 以下のSQLだと、GENERATE_SERIESによって繰り返しINSERTが行われる度に、idに同じ値が使われてしまうため、じつげんできませんでした。
147
+ 以下のSQLだと、GENERATE_SERIESによって繰り返しINSERTが行われる度に、idに同じ値が使われてしまうため、実現できませんでした。
148
148
 
149
149
  ```SQL
150
150
 
@@ -156,6 +156,24 @@
156
156
 
157
157
  name
158
158
 
159
- FROM shouhin_table, GENERATE_SERIES(1, 5) as n;
159
+ FROM shouhin_table, GENERATE_SERIES(1, 5) as n;
160
160
 
161
161
  ```
162
+
163
+ 以下のSQLだとidは連番になるのですが、コピー元のレコード全てに同じidが使われてしまうため、実現できませんでした。
164
+
165
+ ※コピー元がshouhin_tableのid"1~3"のレコードだとすると、新しくINSERTされるレコードのid"4"に対して、id"1~3"のcategoryが設定されてしまう。
166
+
167
+ ```SQL
168
+
169
+ SELECT
170
+
171
+ (SELECT MAX(*) FROM shouhin_table) + n,
172
+
173
+ category,
174
+
175
+ name
176
+
177
+ FROM shouhin_table, GENERATE_SERIES(1, 5) as n;
178
+
179
+ ```