Chaque semaine, découvrez de nouvelles astuces et bonnes pratiques pour devenir un expert !
Voir l'index11-05-2018 08:08 PM - modifié 03-05-2019 10:54 AM
Une des choses puissantes sur le concepteur Alteryx est que vous pouvez faire la plupart des choses liées à votre flux de travail à partir de l'intérieur du workflow lui-même. Une de ces opérations est la création d'une clé primaire pour votre table de base de données et à savoir l'utilisation des options de pré-créer SQL et post-Create SQL dans les données d'entrée et les outils de données de sortie pour ce faire.
Une clé primaire identifie de manière unique un enregistrement dans une table de base de données. La valeur d'un identificateur unique, entre autres avantages, est qu'il améliore les performances de la base de données et permet des mises à jour sur les enregistrements.
Les clés primaires peuvent être constituées d'une ou plusieurs colonnes dans la table d'une table de base de données. Toutefois, une table ne peut avoir qu'une seule clé primaire. Les clés primaires ne peuvent pas être null et doivent être uniques et, par conséquent, l'assignation d'une clé primaire se compose au moins de deux étapes: la définition de la colonne n'est pas null et la définition de la clé primaire. Les valeurs de la colonne cible que vous définissez en tant que clé primaire doivent uniquement avoir des valeurs uniques, sinon la base de données lèvera une erreur. Si aucune colonne de la table ne convient pour être une clé primaire, vous pouvez utiliser l'outil Alteryx record ID pour créer une telle colonne.
Cet article traitera du cas d'utilisation d'une colonne comme clé primaire. Une fois que vous savez comment créer une clé primaire à une colonne, vous pouvez trouver de nombreux articles en ligne expliquant comment créer des clés primaires multi-colonnes dans SQL.
Tous les exemples suivants supposent que vous savez comment vous connecter à votre base de données.
Lors de la création d'une nouvelle table dans Alteryx puis de l'enregistrer sur la base de données, la méthode la plus simple consiste à enregistrer la table en premier, puis à «modifier» la table à l'aide de post-Create SQL pour définir la clé primaire.
Les instructions SQL pre/post-Create dépendent de la base de données que vous utilisez. Dans cet article, vous trouverez des exemples pour SQL Server et Oracle, mais vous pouvez obtenir plus d'exemples en ligne.
Pour SQL Server-expression 1a:
ALTER TABLE ExampleTest1 ALTER COLUMN PrimaryK int NOT NULL; ALTER TABLE ExampleTest1 ADD PRIMARY KEY (PrimaryK);
Pour Oracle (10 +) – expression 1b:
ALTER TABLE "ExampleTest1" MODIFY "PrimaryK" NUMBER NOT NULL; ALTER TABLE "ExampleTest1" ADD CONSTRAINT Example_pk PRIMARY KEY ("PrimaryK");
Comme vous le remarquerez, les expressions 1a et 1b sont légèrement différentes.
Vous pouvez confirmer que la table a maintenant une clé primaire en utilisant un outil de données d'entrée et en vérifiant le générateur de requêtes visuelles. La clé primaire affiche un signe à côté du nom du champ.
Si vous avez déjà une table dans la base de données à laquelle vous souhaitez affecter une clé primaire, il y a deux cas:
2. La table n'a pas de colonne/colonnes appropriées pour être une clé primaire:
Ce sont les cas les plus courants de création de clés primaires et vous pouvez utiliser la même logique pour créer des clés primaires plus complexes ou en effet déplacer une partie de la maintenance de la table SQL droite dans votre workflow à l'aide des options de pré-créer/post-Create SQL.
Note côté: Si vous avez remarqué dans mes captures d'écran, j'ai des noms courts pour les connexions de base de données (si non, les vérifier). Ce sont des alias-une façon ordonnée de se référer à vos connexions de base de données. Si vous n'êtes pas les utiliser, vous devriez vérifier cet article.
Voici les erreurs les plus courantes qui pourraient pointer vers des problèmes avec des clés primaires:
Assurez-vous qu'une clé primaire est déclarée sur la table.
Vous essayez d'insérer une clé qui existe déjà. Assurez-vous que vous n'insérez pas les doublons. La colonne de clé primaire est-elle alphanumérique mais ne respecte pas la casse? Par exemple, SQL Server n'est pas sensible à la casse et EhzA et EhzA sont considérés comme dupliqués.
Remarque: si la touche apparaît plusieurs fois sur le fichier d'entrée et qu'une option de mise à jour est choisie, le même enregistrement sera mis à jour plusieurs fois.
La clé est définie sur auto-incrémentation et Alteryx tente d'insérer une valeur dans cette colonne. Désélectionnez la colonne clé primaire avant de l'ajouter à la table et laissez la base de données créer la valeur.
Les outils in-DB ne peuvent pas générer l'instruction SQL nécessaire pour mettre à jour une table qui a une clé qui est définie sur auto-incrémentation. Changez la façon dont la clé est générée dans votre table ou utilisez les outils normaux.
Pour plus d'informations, s'il vous plaît contacter Alteryx soutien et l'un de nous vous contacterons.
Vous pouvez trouver les workflows utilisés dans cet article joint à ce post. Lorsque vous ouvrez ces workflows, vous obtiendrez des erreurs-c'est attendu parce que vos détails de connexion sont différents. Vous devrez mettre à jour les détails de connexion et les noms de table/colonne avant de les utiliser. Ces workflows ont été créés avec Alteryx designer 10,1 (10.1.7.12188).
Fadi, Henriette, Margarita