多维表格
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
3.4 KiB

***
titre : "Clé primaire"
description : "Cet article explique ce qu'est une clé primaire et comment elle est utilisée dans NocoDB."
balises : \['Champs', 'Clé primaire']
mots-clés : \['Clé primaire NocoDB', 'clé primaire', 'clé primaire dans NocoDB', 'clé primaire dans la base de données']
------------------------------------------------------------------------------------------------------------------------
# Clé primaire
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
1. Un `ID` Le champ système \[datatype : Integer] créé par défaut lors de la création de la table est utilisé comme clé primaire
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. NocoDB n'introduit pas de champ de clé primaire par défaut lors de la création d'une table via le SDK/API. Pour définir une clé primaire, il est nécessaire de spécifier explicitement 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, il est possible de créer de nouveaux enregistrements dans NocoDB pour cette table. Cependant, ces enregistrements ne peuvent ni être mis à jour ni être supprimés. La raison est que 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.
:::