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

回答編集履歴

1

調整

2018/08/31 12:22

投稿

yambejp
yambejp

スコア117820

answer CHANGED
@@ -6,4 +6,31 @@
6
6
  そしてprepare処理がまったくおかしいです
7
7
 
8
8
  forで1文ずつSQLを実行するのは非効率的名のでまとめて処理するのを
9
- おすすめします。(何万件も処理する場合は調整が必要)
9
+ おすすめします。(何万件も処理する場合は調整が必要)
10
+
11
+ # sample
12
+
13
+ - テーブル作成とinsert
14
+
15
+ ```SQL
16
+ create table `schedule` (
17
+ `id` varchar(20) NOT NULL,
18
+ `datetime` datetime NOT NULL,
19
+ `schedule` tinyint(1) NOT NULL,
20
+ unique key(`id`,`datetime`)
21
+ );
22
+
23
+ insert into `schedule` values('honda', '2018-09-08 10:00:00', 1);
24
+ ```
25
+ - テーブル作成とinsert
26
+
27
+ ```SQL
28
+ insert into `schedule` values
29
+ ('kagawa', '2018-09-08 10:00:00', 2),
30
+ ('honda', '2018-09-09 10:00:00', 3),
31
+ ('honda', '2018-09-08 10:00:00', 4)
32
+ on duplicate key update schedule=values(schedule)
33
+ ```
34
+ - 2のデータはidが違うので挿入
35
+ - 3のデータはdatetimeが違うので挿入
36
+ - 4のデータはidもdatetimeもかぶるので指定した4で更新