PostgreSQL Créer une base de données s'il n'existe pas

PostgreSQL Créer une base de données s'il n'existe pas
Chaque fois que nous parlons de PostgreSQL, nous pensons toujours aux bases de données car il s'agit d'un système de gestion de base de données. Vous pouvez créer autant de bases de données de votre choix sur votre serveur postgresql que vous le souhaitez. Après avoir créé une base de données de votre choix, vous pouvez créer plusieurs tables à l'intérieur pour stocker vos données, puis vous pouvez effectuer différents calculs sur ces données. Cependant, parfois, nous voulons exécuter une requête sur une base de données existante, mais pour cela, l'existence d'une telle base de données est obligatoire.

Ce que nous voulons dire, c'est que nous avons besoin d'un mécanisme pour vérifier si une base de données existe sur notre serveur PostgreSQL ou non. De plus, il existe certaines situations dans lesquelles nous voulons qu'une base de données soit créée une fois que nous exécuterons une requête si elle n'existe pas déjà sur notre serveur de base de données. Dans ce cas, la notation «Créer une base de données s'il n'existe» entre en jeu. Ce guide vise à vous présenter l'utilisation de cette notation avec une brève discussion sur la question de savoir si PostgreSQL soutient cette notation ou non. Après cela, nous partagerons avec vous une alternative soutenue par postgresql pour cette notation.

Pouvons-nous utiliser la notation «Créer une base de données s'il n'existe» dans PostgreSQL dans Windows 10?

La notation «Créer une base de données si ce n'est» est prise en charge par certains des langages de programmation. À l'aide de cette notation, vous pouvez vérifier si une base de données spécifiée existe sur votre serveur de base de données ou non, et s'il n'existe pas, cette notation créera simplement cette base de données sur votre serveur. Cependant, parlons spécifiquement de PostgreSQL. PostgreSQL ne prend pas en charge cette notation, ou en d'autres termes, vous pouvez dire que nous ne pouvons pas utiliser cette notation directement dans PostgreSQL dans Windows 10.

Néanmoins, il existe encore des façons qui peuvent vous permettre d'atteindre les mêmes fonctionnalités que vous pouvez le réaliser avec cette notation particulière. Pour en savoir plus sur ces solutions de contournement, vous devrez continuer à lire cet article.

Sinon, alors quelle solution de contournement pouvons-nous utiliser pour atteindre le même objectif?

Étant donné que la notation «Créer une base de données s'il n'y a pas» ne peut pas être utilisée telle qu'elle est dans l'environnement postgresql, nous avons donc décidé de partager avec vous une solution de contournement avec laquelle vous pouvez atteindre les mêmes fonctionnalités. Pour cette solution de contournement, vous devrez exécuter une variation légèrement différente de cette notation sous la forme d'une requête postgresql dans Windows 10. Pour comprendre cette variation, vous devrez suivre les étapes expliquées ci-dessous:

Remarque: n'oubliez pas de vous connecter à votre serveur postgresql avant de suivre ces étapes.

Étape n ° 1: Affichage des bases de données PostgreSQL existantes dans Windows 10:

Nous savons tous que nous souhaitons créer une base de données spécifique dans PostgreSQL si elle existe déjà sur notre serveur. La base de données que nous voulons être créée dans ce cas particulier est «MyNewDB». Par conséquent, nous allons d'abord essayer de découvrir les noms de toutes nos bases de données PostgreSQL existantes pour savoir si une telle base de données existe déjà sur notre serveur ou non. Pour afficher les noms de toutes les bases de données PostgreSQL existantes, vous devez exécuter la requête postgresql suivante dans votre console PSQL:

# Sélectionnez Datname dans PG_DATABASE;

Cette requête extraitra l'attribut «Datname» de la PG_DATABASE de notre serveur PostgreSQL. Cet attribut contient les noms de toutes les bases de données existantes sur le serveur PostgreSQL. L'instruction «Select» de PostgreSQL affichera simplement les noms de base de données extraits de la console comme indiqué dans l'image ci-dessous:

Vous pouvez voir à partir de la sortie indiquée dans l'image ci-dessus qu'aucune base de données avec le nom «MyNewdb» n'existe sur notre serveur PostgreSQL; Par conséquent, nous pouvons tenter de créer une base de données avec ce nom sur notre serveur dans Windows 10.

Étape # 2: Création de la base de données PostgreSQL s'il n'est pas existant dans Windows 10:

Maintenant, puisque nous avons vu que la base de données que nous voulons créer n'existe pas déjà sur notre serveur PostgreSQL, nous devrons donc exécuter la requête suivante pour créer cette base de données:

# Sélectionnez 'Créer une base de données MyNewdb' où il n'y a pas (sélectionnez parmi pg_database où datname = 'mynewdb') \ gexec

Avec cette requête, nous créerons une base de données nommée «MyNewDB» qui n'était pas déjà présente sur notre serveur PostgreSQL sur notre système Windows 10. L'instruction «SELECT» dans cette requête est suivie de l'instruction «Créer une base de données». Après cela, nous avons mentionné le nom de notre nouvelle base de données à créer. Vous pouvez le nommer comme vous voulez. Ensuite, nous avons écrit l'instruction «où ne pas existe» qui vérifiera si la base de données spécifiée existe sur le serveur PostgreSQL ou non. Toutes ces instructions sont suivies par une sous-questionnaire dans laquelle nous avons une autre instruction «Sélectionner» qui vérifiera la PG_DATABASE de notre serveur PostgreSQL pour confirmer la non-existence de la base de données que vous essayez de créer.

Enfin, il y a le paramètre «\ gexec» qui complète cette requête. Ce paramètre est extrêmement important dans cette requête. Ce paramètre envoie votre tampon de requête actuel au serveur PostgreSQL, où chaque composant ou attribut de la sortie de cette requête est traité comme une requête SQL au lieu d'une requête postgresql. Il s'agit en fait de la principale raison derrière le fonctionnement de la notation «Créer une base de données s'il n'est pas» dans PostgreSQL. Sinon, même si vous omenez accidentellement ce paramètre, vous ne pourrez pas réaliser cette fonctionnalité dans PostgreSQL.

Si vous suivez correctement toute la syntaxe de cette requête, une base de données PostgreSQL avec le nom spécifié sera créée avec succès sur le serveur PostgreSQL que vous pouvez confirmer à partir de la réponse de sortie illustrée dans l'image ci-dessous:

Étape # 3: Vérification si la nouvelle base de données PostgreSQL a été créée dans Windows 10 ou non:

Si vous n'êtes toujours pas sûr que votre tentative de création de la nouvelle base de données PostgreSQL dans l'étape susmentionnée a été réussie ou non, vous pouvez toujours le vérifier en jetant un coup d'œil à toutes les bases de données PostgreSQL existantes. Cette fois, vous pourrez également trouver votre nouvelle base de données là-bas. Il vous suffit d'exécuter la requête suivante pour voir ceci:

# Sélectionnez Datname dans PG_DATABASE;

Un total de neuf bases de données existent sur notre serveur PostgreSQL pour le moment, et la plus récente est, en fait, celle que nous venons de créer, comme mis en évidence dans l'image ci-dessous:

Conclusion:

Cet article a parlé de la notation «Créer une base de données, sinon. Ensuite, nous avons discuté si cette notation est soutenue par PostgreSQL ou non. Après avoir découvert que nous ne pouvons pas utiliser cette notation directement dans PostgreSQL, nous avons partagé avec vous une méthode pour atteindre les mêmes fonctionnalités tout en restant dans l'environnement PostgreSQL. Une fois que vous avez parcouru cette méthode, vous comprendrez cette alternative extrêmement utile de la notation «Créer une base de données s'il n'est pas existant» que PostgreSQL prend pleinement en charge.