在 Kettle/Spoon 上插入自动增量 ID

Posted

技术标签:

【中文标题】在 Kettle/Spoon 上插入自动增量 ID【英文标题】:Insert auto-incremental id on Kettle/Spoon 【发布时间】:2016-12-18 18:06:36 【问题描述】:

我在一个文本文件中有一列“名称”。 我想将此列添加到我的数据库的表“名称”中,该表已经存在并且有很多名称。 看起来很简单,就是不知道怎么添加自增ID

我有这样的事情:

names
John
Lars
Peter

我想要这样的东西。

 id | names
 .........
 68 | John
 69 | Lars
 70 | Peter

这就是我创建表格的方式:

CREATE TABLE IF NOT EXISTS `names` (
  `id` INT NOT NULL AUTO_INCREMENT COMMENT '',
  `name` VARCHAR(45) NOT NULL COMMENT '',
  PRIMARY KEY (`id`)  COMMENT '')
ENGINE = InnoDB;

【问题讨论】:

这个问题和pentaho数据集成无关,只是mysql***.com/questions/14753321/… 【参考方案1】:

有两个细节需要考虑:

1 - 如果您不希望数据库中有两行同名。 为此,您必须仅在插入/更新任务的查找部分中设置名称字段。

2 - 如果可以有两行同名。 不要在插入/更新任务的查找部分放任何东西。

Kettle 在这两种情况下都不会在插入中包含 ID 列。 Mysql 会自动定义下一个 ID,因为 ID 字段被标记为 auto_icrement。

更新

请查看目标表字段。您已经定义了“域”表而不是“名称”。

【讨论】:

您对数字 1 的看法是正确的:我不希望两行具有相同的名称。我删除了 id 列...但是,当没有选择 id 列时仍然会出现错误消息

以上是关于在 Kettle/Spoon 上插入自动增量 ID的主要内容,如果未能解决你的问题,请参考以下文章

Kettle Spoon 的使用

Laravel:在具有自动增量ID的字段上插入随机ID

kettle Spoon.bat运行闪退

Pentaho:水壶/勺子:插入后组合多个数据

在 Kettle/Spoon/Pentaho 中循环

MySQL 多行插入是不是获取顺序自动增量 ID?