回答編集履歴
2
NULLの補足
test
CHANGED
@@ -84,11 +84,21 @@
|
|
84
84
|
|
85
85
|
|
86
86
|
|
87
|
+
尚ビューを用いる場合も例に漏れず、
|
88
|
+
|
87
|
-
|
89
|
+
KiyoshiMotokiさんの回答にあるようなNULL演算の問題が起こり得ます。
|
90
|
+
|
91
|
+
これはMySQLに限った話ではなく、
|
92
|
+
|
93
|
+
一般的DBMSは全てこのような挙動を取ります。
|
94
|
+
|
95
|
+
参考までに[NULLの話題を扱ったQA](https://teratail.com/questions/41418)もありますので、
|
96
|
+
|
97
|
+
興味があるようでしたら一読して下さい。
|
88
98
|
|
89
99
|
|
90
100
|
|
91
|
-
|
101
|
+
対策方法としては、
|
92
102
|
|
93
103
|
実テーブル側にカラムにNOT NULL制約をかけるか、
|
94
104
|
|
1
レイアウト調整など
test
CHANGED
@@ -60,9 +60,7 @@
|
|
60
60
|
|
61
61
|
**実体を持たないという特徴**があるため、
|
62
62
|
|
63
|
-
**実テーブル側の値やデータ数が変わった場合も、
|
63
|
+
**実テーブル側の値やデータ数が変わった場合も、自動計算して出力**してくれる点です。
|
64
|
-
|
65
|
-
自動計算して出力**してくれる点です。
|
66
64
|
|
67
65
|
|
68
66
|
|
@@ -74,7 +72,7 @@
|
|
74
72
|
|
75
73
|
|
76
74
|
|
77
|
-
ちなみにビューを経由したINSERTやUPDATE
|
75
|
+
ちなみにビューを経由したINSERTやUPDATEなどには色々と制約があるので、
|
78
76
|
|
79
77
|
その際は素直に実テーブルに対して行うと良いでしょう。
|
80
78
|
|
@@ -94,4 +92,4 @@
|
|
94
92
|
|
95
93
|
実テーブル側にカラムにNOT NULL制約をかけるか、
|
96
94
|
|
97
|
-
SELECTする際に**ベンダ拡張のIFNULL関数か標準SQL関数のCOALESCE関数
|
95
|
+
SELECTする際に**ベンダ拡張のIFNULL関数か標準SQL関数のCOALESCE関数**を利用してNULLをエスケープするかしておきましょう。
|