kettle插入/更新

1.数据库环境

--------------------实时表
CREATE TABLE NowTable(ID INT,NAME VARCHAR(100),Info VARCHAR(100));

INSERT INTO NowTable VALUES(1,‘张启山‘,‘长沙‘);
INSERT INTO NowTable VALUES(2,‘尹新月‘,‘长沙‘);
INSERT INTO NowTable VALUES(3,‘二月红‘,‘长沙‘);

--------------------历史表
CREATE TABLE HistoryTable(ID INT,NAME VARCHAR(100),Info varchar(100));

INSERT INTO HistoryTable VALUES(1,‘张启山‘,‘长沙‘);
INSERT INTO HistoryTable VALUES(2,‘尹新月‘,‘北平‘); 

2.需求

上述有2张表,表NowTable为实体表,表History为历史表,历史表与实体表需要进行数据同步。

很直白的说就是:通过使用插入更新,让表History中的数据与NowTable中的数据保持一致。

3.kettle基本示意图

4.控件详情

4.1NowTable(表输入)

4.2插入/更新

注意:用来查询的关键字为”主键或者联合主键”,后边的主键字段不需要更新

执行kettle,查询数据库表HISTORYTABLE,结果如下:

时间: 2024-10-17 05:56:02

kettle插入/更新的相关文章

Kettle增量插入更新所有数据都拒绝情况处理

在一个Kettle中,我发现一个平时正常跑的转换,突然不正常了.他增量查询没问题,但是到插入更新的那一步,所有数据都拒绝,而且报错看不出什么. 经过排查,所有的写的步骤都是正确的,但是就是不进库.后来,我把所有的步骤重新新建,然后就可以了!!!再后来,我又遇到这种情况,然后把增量查询的sql重新复制,粘贴进去,再保存一下,也正常进库了.可能是kettle识别有问题把?? 原文地址:https://blog.51cto.com/newcourage/2400620

ETL工具kettle基础--插入更新组件

插入更新组件主要是对表进行插入或者更新操作这个组件的逻辑是,根据选定的字段判断目标表中是否存在现有数据,如果存在则执行更新操作,否则执行插入操作:首先选择或添加一个数据库连接,目标模式指的是用户,用户同实例跨用户访问,提交记录数量理论上比较大的值有助于提高速度,但有可能引起锁表,所以一般不要设置太大,100-10000之间就好,如果出现频繁锁表的情况下也可以将值设置为1:'不执行任何更新':这个选项实际应用中我不一般不选择,如果勾选了,那么就不会对表执行任何的更新操作,这个我们一般是在目标表不存

DButils工具类可以用来获取数据库连接向数据库插入更新删除对象2

package com.ctl.util; import java.awt.Color; import java.awt.Font; import java.awt.Insets; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.*; import java.lang.reflect.*; import java.sql.*; import java.text.SimpleD

Mybatis 级联插入更新

刚开始接触Mybatis,在进行级联插入更新时发现不是很方便: 现有表A和B,B表的主键为A表的外键,先有需求是,插入一条B,并且与B关联的A也随之更新其外键. 所做的方式是先Save一条B, 然后查找出来B. 然后通过A的Set 方法把B set进去 然后UPDATE A 过程比较繁琐,不知大家有没有什么好的做法

mySQL教程 第5章 插入 更新与删除数据

第5章 插入 更新与删除数据 使用SQL Manager管理工具连接到schoolDB.由于三张表都设置了主键,因此,以下练习中插入的记录,主键不能重. 插入数据 1. 练习:为表的所有字段插入数据 为表中所有字段插入数据,可以不用指定列 其中的into可以省去 insert into TStudent values ('00008','白安','男','132302197604044565','19760404', '[email protected]','JAVA','20120803')

SQLServer用存储过程实现插入更新数据

实现 1)有相同的数据,直接返回(返回值:0): 2)有主键相同,但是数据不同的数据,进行更新处理(返回值:2): 3)没有数据,进行插入数据处理(返回值:1). [创建存储过程] Create proc Insert_Update @Id varchar(20), @Name varchar(20), @Telephone varchar(20), @Address varchar(20), @Job varchar(20), @returnValue int output as declar

数据库 插入更新表内容的存储过程

gooliugle 原文 插入更新表内容的存储过程 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: <xxxx> -- Create date: <2011-03-15> -- Description: <道具系统日报表统计> -- ===================================

mysql 插入/更新数据

mysql 插入/更新数据 INSERT 语句 1.一次性列出全部字段的值,例如: INSERT INTO student VALUES('Chenqi','M', 29); INSERT INTO student VALUES('Bush','M', 60),('Obama', 'M', 45); 允许同时插入多个数据行: 2.只对部分字段赋值 INSERT INTO student(name, sex) VALUES ('Abby', 'F'),('Joseph', 'M'); 没有在INS

手动插入更新标致自增列

设置标识列自增开关,然后手动插入指定标识的行.1.首先: SQL code:set identity_insert TB_Menu ON --关闭标识的自增,设置为可手动插入 2.其次:插入你要插入的行并指定标识 3最后: SQL code :set identity_insert TB_Menu OFF -- 打开标识的自增,设置为不可手动插入 手动插入更新标致自增列