質問編集履歴
1
不具合現象について情報を追加。
test
CHANGED
File without changes
|
test
CHANGED
@@ -56,6 +56,8 @@
|
|
56
56
|
|
57
57
|
regionには必ず整数値を入力します。
|
58
58
|
|
59
|
+
delはデフォルトでNULLです。該当レコードを使用しなくなった場合にフラグを立ててSELECT対象から除外するためのカラムです。
|
60
|
+
|
59
61
|
|
60
62
|
|
61
63
|
このテーブルに対し、
|
@@ -104,6 +106,32 @@
|
|
104
106
|
|
105
107
|
(班4を班1に書き換えることはregionが異なるのでOKですが、regionとnameがどちらも同じなのは困るのです)
|
106
108
|
|
109
|
+
また、新たにレコードを追加する場合も、name=班1、region=1が追加できてしまいます。
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
しかし、一度追加して、
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
(1, 1, ' 班1', 1, NULL),
|
118
|
+
|
119
|
+
(2, 2, '班2', 1, NULL),
|
120
|
+
|
121
|
+
(3, 3, '班3', 1, NULL),
|
122
|
+
|
123
|
+
(4, 4, '班4', 2, NULL);
|
124
|
+
|
125
|
+
(5, 5, ' 班1', 1, NULL),
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
この状態になってから更に name=班1、region=1 を追加しようとすると撥ねられます。
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
このことから、UNIQUEかどうかの検査対象からgroup_id=1のレコードが漏れていると思われます。
|
134
|
+
|
107
135
|
|
108
136
|
|
109
137
|
編集前にPHPでデータを読み出して検査するなんていう強引な手法も考えましたが・・・そんなことしなくても、MySQL側で本来は解決できるはずですよね。。
|