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

# Datensatz aktualisieren

### Pfad

PATCH /api/table/\{tableId}/record/\{recordId}

### Anfrage

#### Pfadparameter

* tableId (string): Die eindeutige Kennung der Tabelle [(so erhalten Sie sie)](/de/api-doc/get-id#tableid).
* recordId (string): Die eindeutige Kennung des zu aktualisierenden Datensatzes [(so erhalten Sie sie)](/de/api-doc/get-id#recordid).

#### Anfragekörper

* **record (erforderlich)**
  * Beschreibung: Die zu aktualisierenden Datensatzdaten
  * Typ: Object
  * Beispiel:
    ```json theme={null}
    {
      "fields": {
        "Name": "John Doe",
        "Age": 31,
        "Email": "john.doe@example.com"
      }
    }
    ```
  * Hinweis: Das `fields`-Objekt enthält Feldnamen und die entsprechenden neuen Werte. Jeder Feldtyp hat eine andere Wertstruktur; Details finden Sie unter [Werttypen für Datensatzfelder](/de/api-doc/record/interface).

Um den Wert eines Felds zu löschen, übergeben Sie ausdrücklich `null`. Wenn ein Feldname nicht enthalten ist, wird für dieses Feld keine Aktualisierung durchgeführt.

* **fieldKeyType (optional)**
  * Beschreibung: Legt den Typ des Feldschlüssels fest
  * Typ: String
  * Mögliche Werte:
    * "name": Feldname als Schlüssel verwenden
    * "id": Feld-ID als Schlüssel verwenden
    * "dbFieldName": dbFieldName des Feldes als Schlüssel verwenden
  * Beispiel: `"name"` oder `"id"` oder `"dbFieldName"`
  * Hinweis: Wenn nicht angegeben, wird standardmäßig der Feldname als Schlüssel verwendet.
  * Verwendung:
    * Bei Einstellung auf "name":
      ```json theme={null}
      {
        "fields": {
          "Name": "John Doe",
          "Age": 30
        }
      }
      ```
    * Bei Einstellung auf "id":
      ```json theme={null}
      {
        "fields": {
          "fldABCDEFGHIJKLMN": "John Doe",
          "fldOPQRSTUVWXYZ12": 30
        }
      }
      ```
* **typecast (optional)**
  * Beschreibung: Gibt an, ob Feldwerttypen automatisch konvertiert werden sollen. Standardmäßig wird eine strikte Validierung erzwungen, bei der Eingabewerte dem Datentyp des aktuellen Felds entsprechen müssen. Wenn aktiviert, versucht das System eine automatische Konvertierung.
  * Typ: Boolean
  * Mögliche Werte: true oder false
  * Beispiel: `true`
  * Hinweis: Wenn auf true gesetzt, versucht das System, Eingabewerte in den korrekten Feldwerttyp zu konvertieren.
  * Anwendungsbeispiele:
    * Verknüpfungsfeld: Für die Verknüpfung kann direkt der Primärschlüsseltext verwendet werden
      ```json theme={null}
      {
        "User table": "John Smith"
      }
      ```
    * Datumsfeld: Datumszeichenfolgen in nicht standardisiertem Format können verwendet werden
      ```json theme={null}
      {
        "Date": "2023-05-15"
      }
      ```
    * Benutzerfeld: Der Benutzername kann direkt verwendet werden
      ```json theme={null}
      {
        "Assigned To": "John Doe"
      }
      ```

Informationen zum Hochladen neuer Dateien in Anhangsfelder finden Sie im Abschnitt [Anhang hochladen](/de/api-doc/record/upload-attachment).

* **order (optional)**
  * Beschreibung: Verschieben Sie den Datensatz nach der Aktualisierung an eine angegebene Position in einer angegebenen Ansicht.
  * Typ: Object
  * Eigenschaften:
    * viewId: Ansichts-ID
    * anchorId: Anker-Datensatz-ID
    * position: Position relativ zum Anker-Datensatz. Mögliche Werte: `"before"` oder `"after"`
  * Beispiel:
    ```json theme={null}
    {
      "viewId": "viwABCDEFGHIJKLMN",
      "anchorId": "rec123456789ABCDE",
      "position": "after"
    }
    ```

### Antwort

#### Erfolgsantwort

* Statuscode: 200 OK
* Antwortkörper: Gibt die aktualisierten Datensatzdaten zurück.

**Beispiel für den Antwortkörper**

```json theme={null}
{
    "id": "rec123456789ABCDE",
    "fields": {
        "Name": "John Doe",
        "Age": 31,
        "Email": "john.doe@example.com"
    }
}
```

#### Fehlerantworten

* Statuscode: 400 Bad Request: Fehler im Format des Anfragekörpers oder erforderliche Felder fehlen.
* Statuscode: 404 Not Found: Die angegebene tableId oder recordId existiert nicht.

#### Beispielcode

<CodeGroup>
  ```bash CURL theme={null}
  curl -X PATCH 'https://app.teable.ai/api/table/__tableId__/record/__recordId__' \
    -H 'Authorization: Bearer __token__' \
    -H 'Content-Type: application/json' \
    -d '{
      "record": {
        "fields": {
          "Name": "John Doe",
          "Age": 31
        }
      }
    }'
  ```

  ```js JS SDK theme={null}
  import { configApi, updateRecord } from '@teable/openapi';

  configApi({
    endpoint: 'https://app.teable.ai',
    token,
  });

  const response = await updateRecord('__tableId__', '__recordId__', {
    record: {
      fields: {
        Name: 'John Doe',
        Age: 31
      }
    }
  });

  console.log(response.data);
  ```

  ```ts TypeScript theme={null}
  const response = await fetch('https://app.teable.ai/api/table/__tableId__/record/__recordId__', {
    method: 'PATCH',
    headers: {
      'Authorization': 'Bearer __token__',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      record: {
        fields: {
          Name: 'John Doe',
          Age: 31
        }
      }
    })
  });

  console.log(await response.json());
  ```

  ```python Python theme={null}
  import requests

  response = requests.patch(
      'https://app.teable.ai/api/table/__tableId__/record/__recordId__',
      headers={
          'Authorization': 'Bearer __token__',
          'Content-Type': 'application/json'
      },
      json={
          'record': {
              'fields': {
                  'Name': 'John Doe',
                  'Age': 31
              }
          }
      }
  )

  print(response.json())
  ```
</CodeGroup>
