如果 ID 不存在则插入 Table,否则跳过
Insert into Table if ID doesn't exist, otherwise skip
我正在使用 Kettle Pentaho 数据集成。我需要跳过从第一个 table (第一个数据库)插入 IdN 列,如果它已经存在 int 第二个 table (第二个数据库)。
在我的水壶设计中,我有 Table 输入(返回了一些行)。
我需要从返回的行中 select 区分 IdN 列,并将它们(所有不同的 ID)插入到第二个数据库的第二个 table 中(因此我避免重复 ID)。
我已经在 执行 sql 语句 中尝试使用此代码:
INSERT INTO {SecondTable}
SELECT DISTINCT (IdN)
但返回错误:
Invalid column name 'IdN'.
让我感到困惑的是,我已经将参数 IdN 检查到水壶设计的 "Execute SQL section" 节点下的 "Field name to be used as argument" 中,这是我从之前 [=31 返回的有效列名=] 输入节点.
为了确保我理解。您正在尝试将一个查询 select idN 列从一个数据库写入另一个数据库中的 table。如果是这样,查询应如下所示
Insert into db1.dbo.tableName1(colname)
Select Distinct colname From db2.dbo.tablename2
我已经成功地在 Kettle 中使用 "Unique rows" 步骤,它将完全按照我的要求执行,只需指定要检查值是否存在的列。
我正在使用 Kettle Pentaho 数据集成。我需要跳过从第一个 table (第一个数据库)插入 IdN 列,如果它已经存在 int 第二个 table (第二个数据库)。
在我的水壶设计中,我有 Table 输入(返回了一些行)。
我需要从返回的行中 select 区分 IdN 列,并将它们(所有不同的 ID)插入到第二个数据库的第二个 table 中(因此我避免重复 ID)。
我已经在 执行 sql 语句 中尝试使用此代码:
INSERT INTO {SecondTable}
SELECT DISTINCT (IdN)
但返回错误:
Invalid column name 'IdN'.
让我感到困惑的是,我已经将参数 IdN 检查到水壶设计的 "Execute SQL section" 节点下的 "Field name to be used as argument" 中,这是我从之前 [=31 返回的有效列名=] 输入节点.
为了确保我理解。您正在尝试将一个查询 select idN 列从一个数据库写入另一个数据库中的 table。如果是这样,查询应如下所示
Insert into db1.dbo.tableName1(colname)
Select Distinct colname From db2.dbo.tablename2
我已经成功地在 Kettle 中使用 "Unique rows" 步骤,它将完全按照我的要求执行,只需指定要检查值是否存在的列。