|
|
|
@ -0,0 +1,49 @@
|
|
|
|
|
*** |
|
|
|
|
|
|
|
|
|
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. |
|
|
|
|
::: |
|
|
|
|
|