回答編集履歴

1

追記

2016/07/21 05:31

投稿

yambejp
yambejp

スコア114784

test CHANGED
@@ -3,3 +3,35 @@
3
3
  IDがPRIMARYでNOはユニークと考えればよいですか?
4
4
 
5
5
  それともIDがPRIMARYでNOはだたのINTでしょうか?
6
+
7
+
8
+
9
+ # 追記
10
+
11
+ ごめんなさいMySQLの例です
12
+
13
+ ```SQL
14
+
15
+ CREATE TABLE tbl_A (ID INT NOT NULL ,NO INT NOT NULL, NAME VARCHAR(10), KOSHIN_DATE datetime,timestamp timestamp,PRIMARY KEY(ID,NO));
16
+
17
+ INSERT INTO tbl_A(ID,NO,NAME,KOSHIN_DATE) VALUES(1,100,'hoge','2016-07-21 01:00:00'),(1,200,'hoge','2016-07-21 02:00:00'),(2,200,'hoge','2016-07-21 02:00:00'),(3,300,'hoge','2016-07-21 03:00:00');
18
+
19
+ CREATE TABLE tbl_B (ID INT NOT NULL ,NO INT NOT NULL, NAME VARCHAR(10), KOSHIN_DATE datetime,timestamp timestamp,PRIMARY KEY(ID,NO));
20
+
21
+ INSERT INTO tbl_B(ID,NO,NAME,KOSHIN_DATE) VALUES(2,2000,'hoge','2016-07-21 02:00:00'),(3,300,'fuga','2016-07-21 04:00:00'),(4,4000,'fuga','2016-07-21 04:00:00');
22
+
23
+ ```
24
+
25
+
26
+
27
+ データ更新
28
+
29
+ ```SQL
30
+
31
+ INSERT IGNORE INTO tbl_A SELECT * FROM tbl_B;
32
+
33
+ UPDATE tbl_A,tbl_B SET tbl_A.NO=tbl_B.NO,tbl_A.NAME=tbl_B.NAME,tbl_A.KOSHIN_DATE=NOW() WHERE tbl_A.ID=tbl_B.ID AND tbl_A.NO=tbl_B.NO;
34
+
35
+ ```
36
+
37
+ 複合PRIMARYということなので、IDのみの合致ではなくNOまで条件に入れてあります