あなたは、次のシナリオが発生します:記録する場合、記録が挿入されている場合は、更新された目標値テーブルに存在しています。
サンプルデータ
- test_source数据源表 CREATE TABLE `test_source`( ` id`のint型(11)NOT NULL AUTO_INCREMENT、 `BWKEY`のVARCHAR(255)のDEFAULT NULL 、 ` MATNR` VARCHAR(255)のDEFAULT NULL 、 VERPR` ` ダブル(255、0)DEFAULTの NULL 、 PRIMARY KEY ( `id`)、 UNIQUE KEY ` sBWKEY`( `BWKEY`、` MATNR`) )ENGINE =InnoDBのAUTO_INCREMENT = 7 DEFAULT CHARSET = UTF8 INSERT INTO `zjkywms`.`test_source`(` id`、 `BWKEY`、` MATNR`、 `VERPR`)VALUES(1、' 2105 '、' A '、1 ); INSERT INTO `zjkywms`.`test_source`(` id`、 `BWKEY`、` MATNR`、 `VERPR`)VALUES(2、' 2105 '、' B '、2 ); INSERT INTO`zjkywms`.`test_source`(` id`、 `BWKEY`、` MATNR`、 `VERPR`)VALUES(3、' 2105 '、' C '、3 ); INSERT INTO `zjkywms`.`test_source`(` id`、 `BWKEY`、` MATNR`、 `VERPR`)VALUES(4、' 2106 '、' A '、4 ); INSERT INTO `zjkywms`.`test_source`(` id`、 `BWKEY`、` MATNR`、 `VERPR`)VALUES(5、' 2106 '、' B' 5。); INSERT INTO `zjkywms`.`test_source`(id``、` BWKEY`、MATNR``、 `VERPR`)VALUES(6。 、' 2106 ' ' C '、6。); - test_targetターゲットテーブル/に更新または挿入する CREATE TABLEを`test_target`( ` id`のint型(11)NOT NULL AUTO_INCREMENT、 `BWKEY` VARCHAR(255)のDEFAULT NULL 、 ` MATNR` VARCHAR(255)DEFAULTの NULL 、 `VERPR` ダブル(255、0)DEFAULTの NULL 、 PRIMARY KEY (` id`)、 UNIQUE KEY `tBWKEY`(` BWKEY`、 `MATNR`) )ENGINE = InnoDBのAUTO_INCREMENT = 4 のDEFAULT CHARSET = UTF8の INSERT INTO zjkywms`.`test_target`( `` id`、 `BWKEY`、` MATNR`、 `VERPR`)VALUES(1、' 2105 '、' A '、7 )。 INSERT INTO `zjkywms`.`test_target`(` id`、 `BWKEY`、` MATNR`、 `VERPR`)VALUES(2、' 2106 '、' C '、6 )。 INSERT INTO `zjkywms`.`test_target`(` id`、 `BWKEY`、` MATNR`、 `VERPR`)VALUES(3、' 2107 '、' Z '、9)。
二、更新+ 2段階のプロセスを挿入
- 待更新的记录 SELECT * から test_target T 内 JOIN test_sourceのs に s.BWKEY = t.BWKEY と s.MATNR = t.MATNR。 - 更新test_target T内がtest_source s.BWKEY = t.BWKEYのSとs.MATNR = t.MATNRセットt.VERPR = s.VERPR JOIN - 待插入的记录 - VERPR、BWKEY、MATNR(test_target挿入) SELECT s.BWKEY、s.MATNR、s.VERPRをから test_sourceだところ ではない が存在するが(選択 1 から test_targetさt s.BWKEY= t.BWKEY と s.MATNR = t.MATNR)。
効果
MySQLの> を選択 * からtest_target。 + - - + ------- + ------- + ------- + | ID | BWKEY | MATNR | VERPR | + - - + ------- + ------- + ------- + | 1 | 2105 | | 1 | | 2 | 2106 | C | 6 | | 5 | 2107 | Z | 9 | | 6 | 2105 | B | 2 | | 7 | 2105 | C | 3 | | 8 | 2106 | | 4 | | 9 | 2106 | B | 5 | + - - + ------- + ------- + ------- + 7列に セット(0.03秒)
レコードID:1は、元の値が7で、更新記録である6〜9は、記録中に挿入されます。
三、オラクルのステップ動作
<保留>
図4に示すように、ステップ動作のMySQLの
<保留>