回答編集履歴

1

こうしん

2020/11/21 14:25

投稿

yambejp
yambejp

スコア116734

test CHANGED
@@ -15,3 +15,61 @@
15
15
  ただ、ユニーク設定もしていない書籍名で出版社と価格を変えるのは
16
16
 
17
17
  実践的ではありません。普通に主キーであるbookidを利用して変更すべきです
18
+
19
+
20
+
21
+ # 主キーを使ったinsert/update
22
+
23
+ 念の為・・・
24
+
25
+ ```SQL
26
+
27
+ CREATE TABLE Book (
28
+
29
+ bookid INTEGER PRIMARY KEY,
30
+
31
+ bookname VARCHAR(40),
32
+
33
+ publisher VARCHAR(40),
34
+
35
+ price INTEGER
36
+
37
+ );
38
+
39
+
40
+
41
+ INSERT INTO Book VALUES
42
+
43
+ (1, 'サッカーの歴史', 'グッドスポーツ', 7000),
44
+
45
+ (2, 'サッカーを知っている女の子', '木の数', 13000),
46
+
47
+ (3, 'サッカーの理解', '大韓メディア', 22000);
48
+
49
+ ```
50
+
51
+ とりあえず挿入
52
+
53
+ ```SQL
54
+
55
+ insert into book values
56
+
57
+ (15, 'スポーツの楽しみ', '庭の科学書', 25000)
58
+
59
+ on duplicate key update set bookname=values(bookname),publisher=values(publisher),price=values(price);
60
+
61
+ ```
62
+
63
+
64
+
65
+ 主キーが競合するデータを挿入しようとして更新
66
+
67
+ ```SQL
68
+
69
+ insert into book values
70
+
71
+ (15,'スポーツの楽しみ','第一書籍',18000)
72
+
73
+ on duplicate key update bookname=values(bookname),publisher=values(publisher),price=values(price);
74
+
75
+ ```