回答編集履歴

1

sample

2017/06/26 09:27

投稿

yambejp
yambejp

スコア114829

test CHANGED
@@ -9,3 +9,125 @@
9
9
  またget_var()の仕様がよくわからないのですが
10
10
 
11
11
  $exNmが参照したり宣言されているように見えませんが、そういうものなのでしょうか?
12
+
13
+
14
+
15
+ # sample
16
+
17
+ テーブルwp_termsについて、nameとslugがそれぞれユニークだとして、なんのために
18
+
19
+ 同じunique設定のname2,name3を付けているのでしょうか?
20
+
21
+
22
+
23
+ 以下サンプル
24
+
25
+ ```SQL
26
+
27
+ CREATE TABLE `wp_terms` (
28
+
29
+ `term_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
30
+
31
+ `name` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
32
+
33
+ `slug` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
34
+
35
+ `term_group` bigint(10) NOT NULL DEFAULT '0',
36
+
37
+ PRIMARY KEY (`term_id`),
38
+
39
+ UNIQUE KEY `name` (`name`),
40
+
41
+ UNIQUE KEY `name_2` (`name`),
42
+
43
+ UNIQUE KEY `name_3` (`name`),
44
+
45
+ UNIQUE KEY `slug` (`slug`)
46
+
47
+ ) ENGINE=InnoDB AUTO_INCREMENT=13497 DEFAULT CHARSET=utf8mb4;
48
+
49
+
50
+
51
+
52
+
53
+ INSERT INTO wp_terms(name,slug,term_group)
54
+
55
+ VALUES('a1','b1',100),('a2','b2',200),('a3','b3',300),('a4','b4',400),('a5','b5',500);
56
+
57
+
58
+
59
+ ```
60
+
61
+
62
+
63
+ nameとslugの二重の制約がある場合以下
64
+
65
+ nameとslugの組み合わせがあっていればterm_groupが修正されます
66
+
67
+
68
+
69
+ ```SQL
70
+
71
+ INSERT INTO wp_terms(name,slug,term_group)
72
+
73
+ VALUES('a1','b1',600)
74
+
75
+ ON DUPLICATE KEY UPDATE
76
+
77
+ name = VALUES(name),
78
+
79
+ slug = VALUES(slug),
80
+
81
+ term_group = VALUES(term_group)
82
+
83
+
84
+
85
+ ```
86
+
87
+
88
+
89
+ nameもしくはslugのどちらかが一致する場合は、もう片方を書き換えた上で
90
+
91
+ temp_groupが修正されます
92
+
93
+ ```SQL
94
+
95
+ INSERT INTO wp_terms(name,slug,term_group)
96
+
97
+ VALUES('a2','b6x',700),('a7x','b3',800)
98
+
99
+ ON DUPLICATE KEY UPDATE
100
+
101
+ name = VALUES(name),
102
+
103
+ slug = VALUES(slug),
104
+
105
+ term_group = VALUES(term_group)
106
+
107
+
108
+
109
+ ```
110
+
111
+
112
+
113
+ nameとslugの組み合わせが競合する場合エラーになります
114
+
115
+ ```SQL
116
+
117
+ INSERT INTO wp_terms(name,slug,term_group)
118
+
119
+ VALUES('a4','b5',900)
120
+
121
+ ON DUPLICATE KEY UPDATE
122
+
123
+ name = VALUES(name),
124
+
125
+ slug = VALUES(slug),
126
+
127
+ term_group = VALUES(term_group)
128
+
129
+ ```
130
+
131
+
132
+
133
+