teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

typo

2017/01/26 10:20

投稿

yambejp
yambejp

スコア117906

answer CHANGED
@@ -8,8 +8,8 @@
8
8
 
9
9
  ```SQL
10
10
  create table tbl(id int not null primary key auto_increment
11
- ,uid int,name varchar(20),size in,hoge varchar(20)
11
+ ,uid int,name varchar(20),size int,hoge varchar(20)
12
- t,unique key(uid,name,size));
12
+ ,unique key(uid,name,size));
13
13
  ```
14
14
  順次データ投入
15
15
  ```SQL

2

調整

2017/01/26 10:20

投稿

yambejp
yambejp

スコア117906

answer CHANGED
@@ -7,7 +7,9 @@
7
7
  うまく動かないと言うのでsampleつけときます
8
8
 
9
9
  ```SQL
10
- create table tbl(id int not null primary key auto_increment,uid int,name varchar(20),size int,unique key(uid,name,size),hoge varchar(20));
10
+ create table tbl(id int not null primary key auto_increment
11
+ ,uid int,name varchar(20),size in,hoge varchar(20)
12
+ t,unique key(uid,name,size));
11
13
  ```
12
14
  順次データ投入
13
15
  ```SQL

1

sample

2017/01/26 10:18

投稿

yambejp
yambejp

スコア117906

answer CHANGED
@@ -1,4 +1,25 @@
1
1
  > user_idとnameかsizeがuniqueKey
2
2
 
3
3
  であれば複合unique属性で「user_id,name,size」で
4
- 設定してみてはどうでしょうか?
4
+ 設定してみてはどうでしょうか?
5
+
6
+ #sample
7
+ うまく動かないと言うのでsampleつけときます
8
+
9
+ ```SQL
10
+ create table tbl(id int not null primary key auto_increment,uid int,name varchar(20),size int,unique key(uid,name,size),hoge varchar(20));
11
+ ```
12
+ 順次データ投入
13
+ ```SQL
14
+ insert into tbl(uid,name,size,hoge) values(1,'aaa',100,@a:='hoge1')
15
+ on duplicate key update hoge=@a;
16
+ insert into tbl(uid,name,size,hoge) values(1,'aaa',200,@a:='hoge2')
17
+ on duplicate key update hoge=@a;/*uidとnameが一緒だけどsizeが違うのでOK*/
18
+ insert into tbl(uid,name,size,hoge) values(1,'bbb',100,@a:='hoge3')
19
+ on duplicate key update hoge=@a;/*uidとsizeが一緒だけどnameが違うのでOK*/
20
+ insert into tbl(uid,name,size,hoge) values(1,'aaa',100,@a:='hoge4')
21
+ on duplicate key update hoge=@a;/*uidとsizeとnameが一緒なのでhogeを更新*/
22
+ insert into tbl(uid,name,size,hoge) values(2,'aaa',100,@a:='hoge5')
23
+ on duplicate key update hoge=@a;/*sizeとnameが一緒だけどuidが違うのでOK*/
24
+
25
+ ```