Référentiel des pays en SQL
par
, 27/09/2017 à 23h18 (2593 Affichages)
Devant insérer la liste des pays dans une base de données Postgresql, j'ai trouvé sur Internet un référentiel en SQL mais pour MySQL.
Postgresql n'a pas apprécié les fameuses apostrophes inversées que MySQL ajoute par défaut pour entourer les noms des éléments de la BDD (schéma, table, colonne...), lesquelles sont pourtant inutiles si ces éléments sont correctement nommés, c'est à dire si les noms ne comportent pas de caractères spéciaux ou s'ils ne sont pas interprétables comme des mots du langage SQL.
La consigne AUTO_INCREMENT a été rejetée également par Postgresql puisqu'il ne la connaît pas. Cette consigne était d'ailleurs inutile dans ce script puisque la table était déjà remplie.
D'autres petites choses ont également été refusées par Postgresql ; je ne vais pas tout détailler.
Je vous propose donc le code modifié en SQL standard, sans les fioritures propres à MySQL. Ce script SQL devrait normalement être accepté par tous les SGBD qui respectent un tant soit peu la norme SQL. À vous de l'adapter à votre SGBD si vous le souhaitez, ou d'ajouter après la création de la table les index...
referentiel-pays_V1.sql
EDIT du 29/09/2017 :
Je viens de trouver un autre référentiel des pays, datant de 2014, dans les fichiers à télécharger de Developpez.com. Celui-ci est plus complet quand aux éléments fournis (indicatif téléphonique , monnaie et suffixe Internet) mais il est, lui aussi pour MySQL. À noter aussi qu'il est en anglais.
J'ai donc fait la même démarche que pour l'autre fichier en supprimant, dans le script de création de la table, les apostrophes inversées et la référence au moteur MyISAM. J'ai également changé le nom de la colonne 'Type' (qui est un mot SQL) en 'Type_of_governance' et j'ai mis des underscore à la place des espaces dans les noms de certaines colonnes.
J'ai également changé la taille des colonnes en fonction du MAX(LENGTH()) de chaque colonne avec un peu de marge.
La NULLabilité des colonnes serait aussi à revoir et je n'ai pas testé l'implémentation sur Postgresql mais ça devrait passer sans problème.
ListPays.sql
Ces tables ne sont pas forcément à utiliser tel quel dans votre BDD mais plutôt servir de base de référence à votre table des pays dans votre base de données.