Une clé primaire est un champ de table de base de données spécial désigné pour identifier de manière unique chaque enregistrement de table.
## Utilisation de la clé primaire
Comme il identifie de manière unique un enregistrement individuel d'une table, il est utilisé en interne par NocoDB pour toutes les opérations associées à un enregistrement.
## Clé primaire dans NocoDB
La clé primaire définie/utilisée dans NocoDB dépend de la façon dont la table sous-jacente a été créée. Le résumé est capturé ci-dessous
1. Depuis l'interface utilisateur, créer un nouveau tableau / Importer depuis Excel / Importer depuis CSV
2. Champs système supplémentaires`created-at`,`updated-at`sont insérés par défaut
2. Connectez-vous à une base de données externe existante
1. Existant`primary key`le champ défini pour une table est conservé tel quel; NocoDB n'insère pas de nouveau champ ID
2. Champs système supplémentaires`created-at`,`updated-at`ne sont pas insérés par défaut
3. Importer depuis Airtable
1. L'ID de l'enregistrement Airtable est marqué comme clé primaire pour les enregistrements importés et est mappé au champ`ncRecordId`\[type de données: varchar]
2. Si un nouvel enregistrement est inséré après la migration et si le champ ncRecordId a été omis lors de l'insertion de l'enregistrement - la chaîne générée automatiquement sera insérée par NocoDB
3. La valeur de hachage calculée pour l'ensemble de l'enregistrement est stockée dans le champ système`ncRecordHash`
4. Champs système supplémentaires`created-at`,`updated-at`ne sont pas insérés par défaut
4. Créer une nouvelle table à l'aide du SDK/API
1. Aucun champ de clé primaire par défaut n'est introduit par NocoDB. Il doit être explicitement spécifié lors de la création de la table (à l'aide de l'attribut`pk: true`)
:::Info**Et si la clé primaire manquait?**
Il est possible d'avoir une table sans aucune clé primaire.
* Une table de base de données externe peut être créée sans configuration de clé primaire.
* Une nouvelle table peut être créée à l'aide du SDK/API sans clé primaire
Dans de tels scénarios, de nouveaux enregistrements peuvent être créés dans NocoDB pour cette table, mais les enregistrements ne peuvent pas être mis à jour ou supprimés car NocoDB n'a aucun moyen d'identifier de manière unique ces enregistrements.
:::
:::Info**Puis-je remplacer la clé primaire par un autre champ dans les tables?**
* Vous ne pouvez pas mettre à jour la clé primaire à partir de l'interface utilisateur NocoDB. Vous pouvez le reconfigurer directement au niveau de la base de données et déclencher`meta sync`explicitement.