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

回答編集履歴

1

追記

2016/07/21 05:31

投稿

yambejp
yambejp

スコア117914

answer CHANGED
@@ -1,3 +1,19 @@
1
1
  IDとNOはともにPRIMARYとなっていますが
2
2
  IDがPRIMARYでNOはユニークと考えればよいですか?
3
- それともIDがPRIMARYでNOはだたのINTでしょうか?
3
+ それともIDがPRIMARYでNOはだたのINTでしょうか?
4
+
5
+ # 追記
6
+ ごめんなさいMySQLの例です
7
+ ```SQL
8
+ CREATE TABLE tbl_A (ID INT NOT NULL ,NO INT NOT NULL, NAME VARCHAR(10), KOSHIN_DATE datetime,timestamp timestamp,PRIMARY KEY(ID,NO));
9
+ 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');
10
+ CREATE TABLE tbl_B (ID INT NOT NULL ,NO INT NOT NULL, NAME VARCHAR(10), KOSHIN_DATE datetime,timestamp timestamp,PRIMARY KEY(ID,NO));
11
+ 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');
12
+ ```
13
+
14
+ データ更新
15
+ ```SQL
16
+ INSERT IGNORE INTO tbl_A SELECT * FROM tbl_B;
17
+ 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;
18
+ ```
19
+ 複合PRIMARYということなので、IDのみの合致ではなくNOまで条件に入れてあります