> ## Documentation Index
> Fetch the complete documentation index at: https://docs.twenty.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 通过导入更新现有记录

> 使用 CSV 导入批量更新记录的完整分步指南。

## 概览

需要一次更新许多记录吗？ 与其逐个编辑，不如使用 CSV 导入批量更新现有记录。

**使用场景：**

* 为多人更新职位名称
* 批量更改公司信息
* 向新的自定义字段添加数据
* 更正多条记录中的数据错误

## 工作原理

当您导入的文件包含与现有记录匹配的**唯一标识符**时，Twenty 会更新该记录，而不是创建重复项。

| 如果唯一标识符... | Twenty 将...          |
| ---------- | -------------------- |
| 与现有记录匹配    | **更新**现有记录           |
| 与任何记录都不匹配  | **创建**新记录            |
| 您的文件中缺少    | **创建**新记录（带自动生成的 ID） |

<Warning>
  **多选字段会被覆盖，而不是合并。**

  如果一条记录已选择了 `Option A` 和 `Option B`，而您导入了 `["Option C"]`，则导入后该记录将只保留 `Option C`。 导入会替换之前的所有选择——不会在其基础上追加。

  若要保留现有值，请在导入中包含它们全部：`["Option A","Option B","Option C"]`
</Warning>

## 步骤 1：导出现有数据

首先，导出您要更新的记录：

1. 导航到对象（人员、公司等）
2. **添加所需列** — 点击 **Options → Fields** 以显示您要更新的字段
3. **如有需要，进行筛选** — 将范围缩小到仅包含您要更新的记录
4. 点击 **⋮** → **导出视图**
5. 保存 CSV 文件

<Note>**为什么先导出？** 导出的文件具有正确的格式，包含唯一标识符，并且在导入时可自动映射。</Note>

### 导出内容

* 当前视图中所有可见列
* 记录的唯一标识符（`id`、`email`、`domain`）
* 可供您修改的当前字段值

## 步骤 2：编辑 CSV 文件

在电子表格应用（Excel、Google 表格等）中打开导出的文件：

1. **保留唯一标识符列** — 不要删除 `id`、`email` 或 `domain`
2. 在您要更改的列中**更新这些值**
3. **移除不需要更新的列**（可选，但更简洁）
4. **不要更改唯一标识符的值** — 否则 Twenty 将创建新记录

### 示例：更新职位名称

**导出的文件：**

```csv theme={null}
id,email,firstName,lastName,jobTitle
550e8400-e29b-41d4-a716-446655440001,john@acme.com,John,Smith,Sales Rep
550e8400-e29b-41d4-a716-446655440002,jane@acme.com,Jane,Doe,Sales Rep
550e8400-e29b-41d4-a716-446655440003,bob@acme.com,Bob,Johnson,Sales Rep
```

**进行编辑后：**

```csv theme={null}
id,email,firstName,lastName,jobTitle
550e8400-e29b-41d4-a716-446655440001,john@acme.com,John,Smith,Account Executive
550e8400-e29b-41d4-a716-446655440002,jane@acme.com,Jane,Doe,Senior Account Executive
550e8400-e29b-41d4-a716-446655440003,bob@acme.com,Bob,Johnson,Account Executive
```

<Warning>
  **不要更改唯一标识符的值。**

  如果您将 `john@acme.com` 更改为 `john.smith@acme.com`，Twenty 将创建新记录，而不是更新现有记录。
</Warning>

## 步骤 3：导入已更新的文件

1. 导航到对象
2. 点击 **⋮** → **导入记录**
3. 上传您已编辑的 CSV 文件
4. **确保唯一标识符已映射** — 确认 `email`、`domain` 或 `id` 映射正确
5. 检查字段映射
6. 检查是否存在错误
7. 点击 **确认**

Twenty 根据唯一标识符匹配记录，并使用新值进行更新。

## 选择合适的唯一标识符

| 对象        | 推荐     | 备选   | 备注          |
| --------- | ------ | ---- | ----------- |
| **人员**    | `电子邮件` | `id` | 电子邮件便于阅读    |
| **公司**    | `域`    | `id` | 域名便于阅读      |
| **自定义对象** | 任何唯一字段 | `id` | 使用您的自定义唯一字段 |

<Note>**仅使用一个唯一标识符。** 不要同时映射 `email` 和 `id`。 这可能会引起混淆和错误。</Note>

### 使用自定义唯一字段

如果您有标记为唯一的自定义字段（例如来自其他系统的外部 ID）：

1. 在导出和导入中包含该字段
2. 在导入过程中进行映射
3. Twenty 将基于该字段进行匹配

## 步骤 4：验证更新结果

导入后：

1. 打开几条已更新的记录
2. 确认更改已生效
3. 检查是否未创建重复记录

## 文件中未包含的字段会怎样？

**未包含在导入文件中的字段将保持不变。**

| 您的文件包含...                  | 结果                         |
| -------------------------- | -------------------------- |
| `email`，`jobTitle`         | 只有 `jobTitle` 被更新；其他字段保持不变 |
| `email`，`jobTitle`，`phone` | `jobTitle` 和 `phone` 被更新   |

这意味着您只需包含想要更改的字段（以及唯一标识符）。

## 同时进行更新与创建新记录

您可以在同一次导入中更新现有记录并创建新记录：

```csv theme={null}
email,firstName,lastName,jobTitle
john@acme.com,John,Smith,Senior Manager    ← Updates existing (email matches)
newperson@acme.com,New,Person,Analyst      ← Creates new (email doesn't match)
```

## 常见错误及避免方法

| 错误          | 问题                                               | 结果         | 解决方案                         |
| ----------- | ------------------------------------------------ | ---------- | ---------------------------- |
| **更改唯一标识符** | 将 `john@acme.com` 更改为 `john.smith@acme.com`      | 创建新记录而不是更新 | 保持唯一标识符不变                    |
| **多个唯一字段**  | 同时映射 `email` 和 `id`                              | 可能出现匹配冲突   | 仅映射一个唯一标识符                   |
| **没有唯一标识符** | 文件仅包含 `firstName`、`lastName`、`jobTitle`          | 所有行都会创建新记录 | 务必包含 `email`、`domain` 或 `id` |
| **大小写不匹配**  | 文件中为 `John@acme.com`，但 Twenty 中为 `john@acme.com` | 创建新记录      | 从 Twenty 导出以获取精确值            |

## 常见问题

<AccordionGroup>
  <Accordion title="如果某些记录尚不存在怎么办？">
    具有唯一标识符但与现有记录不匹配的记录将被创建为新记录。 这样您就可以在同一次导入中同时进行更新和创建。
  </Accordion>

  <Accordion title="我可以清除/清空字段值吗？">
    可以，在 CSV 中将该单元格留空即可。 导入会清除现有记录中该字段的值。
  </Accordion>

  <Accordion title="我未包含在导入中的字段会怎样？">
    未包含在导入文件中的字段在现有记录上将保持不变。 只有您包含的字段会被更新。
  </Accordion>

  <Accordion title="我可以更新关联字段（例如公司）吗？">
    是! 包含该关联对象的唯一标识符（例如 `companyDomain`），并将其映射到该关联字段。 该关联将被更新。
  </Accordion>

  <Accordion title="我如何知道哪些记录会被更新、哪些会被创建？">
    在导入审核步骤中，Twenty 会根据唯一标识符的匹配情况，显示将被更新与被创建的记录数量。
  </Accordion>

  <Accordion title="我可以撤销一次批量更新吗？">
    无法自动撤销。 我们建议在进行批量更新之前导出数据作为备份。
  </Accordion>
</AccordionGroup>

## 最佳实践

1. **先导出** — 始终从导出开始，以确保格式正确
2. **更新前先备份** — 在进行批量更改之前导出您的数据
3. **先用少量记录进行测试** — 在进行大规模批量处理前，先尝试更新 5-10 条记录
4. **使用便于阅读的标识符** — `email` 和 `domain` 比 `id` 更容易核对
5. **只包含必要的列** — 列越少，出错的可能性越低

## 故障排除

遇到问题？ 请查看：

* [如何修复导入错误](/l/zh/user-guide/data-migration/how-tos/fix-import-errors)
* [唯一性约束](/l/zh/user-guide/data-migration/capabilities/uniqueness-constraints)
* [字段映射参考](/l/zh/user-guide/data-migration/capabilities/field-mapping)
