回答編集履歴

1

追記

2019/04/24 02:13

投稿

yambejp
yambejp

スコア114878

test CHANGED
@@ -3,3 +3,37 @@
3
3
  常にperson1<person2になるよう値を投入することです
4
4
 
5
5
  (person1>person2となったとき値を入れ替えて投入する)
6
+
7
+
8
+
9
+ # 追記
10
+
11
+ よく考えたら仮想生成列(virtual generated column)を使うこともできますね
12
+
13
+ - テーブル作成
14
+
15
+ ```SQL
16
+
17
+ create table tbl (
18
+
19
+ Con_code int unique key,
20
+
21
+ person1 int,
22
+
23
+ person2 int,
24
+
25
+ person_unique varchar(100) as (concat(least(person1,person2),',',greatest(person1,person2))) unique key
26
+
27
+ );
28
+
29
+ ```
30
+
31
+ - データ挿入
32
+
33
+ ```SQL
34
+
35
+ insert ignore into tbl(Con_code,person1,person2) values(1,3,1),(2,26,4),(3,1,13),(4,2,4),(5,1,3),(6,3,10);
36
+
37
+ ```
38
+
39
+ 上記Con_codeは1と前後逆の同等のデータになるため挿入されない