*** 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. :::