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
- Depuis l'interface utilisateur, créer un nouveau tableau / Importer depuis Excel / Importer depuis CSV
- 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 - Champs système supplémentaires
created-at
,updated-at
sont insérés par défaut
- Un
- Connectez-vous à une base de données externe existante
- Existant
primary key
le champ défini pour une table est conservé tel quel ; NocoDB n'insère pas de nouveau champ ID - Champs système supplémentaires
created-at
,updated-at
ne sont pas insérés par défaut
- Existant
- Importer depuis Airtable
- 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] - 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
- La valeur de hachage calculée pour l'ensemble de l'enregistrement est stockée dans le champ système
ncRecordHash
- Champs système supplémentaires
created-at
,updated-at
ne sont pas insérés par défaut
- L'ID de l'enregistrement Airtable est marqué comme clé primaire pour les enregistrements importés et est mappé au champ
- Créer une nouvelle table à l'aide du SDK/API
- 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
.
- 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
:::InfoEt 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. :::
:::InfoPuis-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. :::