回答編集履歴

4

注意点を

2020/01/13 06:53

投稿

FKM
FKM

スコア3640

test CHANGED
@@ -5,6 +5,8 @@
5
5
  調べたらSQLiteでもバルクインサートが使えるようなので。
6
6
 
7
7
 
8
+
9
+ ##行程
8
10
 
9
11
  1. テーブルAと全く同じテーブルADASHを作る。
10
12
 
@@ -18,7 +20,7 @@
18
20
 
19
21
 
20
22
 
21
- バルクインサートとは
23
+ ##補足:バルクインサートとは
22
24
 
23
25
  **insert into テーブル名 values(...);**
24
26
 
@@ -30,6 +32,8 @@
30
32
 
31
33
 
32
34
 
35
+ ###テーブルの複写
36
+
33
37
  また、複写の手段ですが
34
38
 
35
39
  ```
@@ -38,11 +42,11 @@
38
42
 
39
43
  ```
40
44
 
41
- という方法があります。全く同じ構造にしておくのがポイントで、この待避テーブルを作成するやり方はけっこう常套手段です。
45
+ という方法があります。全く同じ構造にしておくのがポイントで、この待避テーブルを作成するやり方はけっこうデータ処理の常套手段です。
42
46
 
43
47
 
44
48
 
45
- あと、削除といっても、間違ってもdelete文を使わないでください。泣きを見ます。それから試す前にかならずロールバックできるようにバックアップをとっておてください。
49
+ あと、削除といっても、間違ってもdelete文を使わないでください。泣きを見ます。それから、**試す前にロールバックできるようにバックアップをとっておく**ようにしてください。
46
50
 
47
51
 
48
52
 

3

削除の条件

2020/01/13 06:53

投稿

FKM
FKM

スコア3640

test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  2. テーブルBから取得したデータをテーブルADASHにバルクインサートで挿入
12
12
 
13
- 3. テーブルAを空にする
13
+ 3. テーブルAを空にする。もし、残したいデータも存在する場合は該当条件のものだけをidなどで紐付け、delete文で削除する。
14
14
 
15
15
  4. テーブルADASHの値をまるまるテーブルAに複写する。
16
16
 

2

バックアップ

2020/01/13 06:49

投稿

FKM
FKM

スコア3640

test CHANGED
@@ -1,4 +1,4 @@
1
- 元を見ましたがサブクエリを使っているものをupdateするのは非常に時間を要します。それに物量も万行単位なので、待避用のテーブルを作って、そこに一旦作成。その後、元のテーブルを削除してから、移し替えるという手段が速いでしょう。
1
+ 元を見ましたがサブクエリを使っているものをupdateするのは非常に時間を要します。それに物量も万行単位なので、待避用のテーブルを作って、そこに一旦作成。その後、元のテーブル内データを削除(truncate)してから、移し替えるという手段が速いでしょう。
2
2
 
3
3
 
4
4
 
@@ -42,4 +42,8 @@
42
42
 
43
43
 
44
44
 
45
+ あと、削除といっても、間違ってもdelete文を使わないでください。泣きを見ます。それから試す前にかならずロールバックできるようにバックアップをとっておいてください。
46
+
47
+
48
+
45
49
  まあ、更に速い手段でCSVエクスポート&インポートで突っ込むという手もありますが。

1

複写について

2020/01/13 06:46

投稿

FKM
FKM

スコア3640

test CHANGED
@@ -20,13 +20,25 @@
20
20
 
21
21
  バルクインサートとは
22
22
 
23
- insert into テーブル名 values(...);
23
+ **insert into テーブル名 values(...);**
24
24
 
25
- insert into テーブル名 values(...),(...),n;
25
+
26
26
 
27
+ **insert into テーブル名 values(...),(...),n;**
28
+
27
- という風につなげられる処理(バルクとは船荷のこと)です。船荷のようにまとめて投入できるので、実行処理が一度で済むため、長い行数だと処理は格段に速くなります。
29
+ という風につなげられる挿入処理(バルクとは船荷のこと)です。船荷のようにまとめて投入できるので、実行処理が一度で済むため、長い行数だと処理は格段に速くなります。
28
30
 
29
31
 
32
+
33
+ また、複写の手段ですが
34
+
35
+ ```
36
+
37
+ insert into テーブルA select * from テーブルADASH;
38
+
39
+ ```
40
+
41
+ という方法があります。全く同じ構造にしておくのがポイントで、この待避テーブルを作成するやり方はけっこう常套手段です。
30
42
 
31
43
 
32
44