IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 PostgreSQL Discussion :

Equivalent à l'utf8_bin en PostgreSQL


Sujet :

PostgreSQL

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 144
    Points : 110
    Points
    110
    Par défaut Equivalent à l'utf8_bin en PostgreSQL
    Bonjour à tous,

    Je suis en train de migrer une base de données de MySQL en PostgreSQL.
    Cependant lorsque j'importe la base de données, il m'affiche une erreur de collation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ERROR:  collation "utf8_bin" for encoding "UTF8" does not exist
    LINE 7:   "Currency" char(3) COLLATE utf8_bin NOT NULL,
    MySQL semble connaître la collation utf8_bin mais pas PostgreSQL...

    Une idée?

    Merci

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 577
    Points
    52 577
    Billets dans le blog
    5
    Par défaut
    L'UTF8 est particulièrement mal adapté aux SGBDR et c'est une belle merde en MySQL car cela conduit à :
    • utiliser 3 octets par caractères (là ou la majorité des caractères ne représente qu'un seul octet...) donc multiplier le volume des littéraux par 3 !!!
    • rendre impossible la création des index dont la longueur de chaine est de plus de 254 caractères
    • rendre moins performant les opérations de tri et de groupage


    Débarrassez vous donc de l'UTF8 qui est une connerie !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 144
    Points : 110
    Points
    110
    Par défaut
    Bonjour SQLpro,

    J'entends bien vos arguments (je vous remercie d'ailleurs pour ces informations) malheureusement il en a été décidé autrement.
    Avez-vous tout de même une réponse à apporter à ma question initiale ?

    Je vous remercie d'avance.

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 577
    Points
    52 577
    Billets dans le blog
    5
    Par défaut
    Je n'ai pas l'habitude d'encourager les gens au suicide....

    Par hasard seriez vous Belge ?

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 590
    Points
    3 590
    Billets dans le blog
    8
    Par défaut
    Salut
    Au vu de...
    Citation Envoyé par adrien1 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ERROR:  collation "utf8_bin" for encoding "UTF8" does not exist
    LINE 7:   "Currency" char(3) COLLATE utf8_bin NOT NULL,
    je pense qu'il s'agit d'un script généré sur la base MySQL est qui exécuté sur PostgreSQL.
    Si tel est le cas, il faut remplacer utf8_bin par pg_catalog."default" dans tout le script.
    @+
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

  6. #6
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 144
    Points : 110
    Points
    110
    Par défaut
    Bonjour alassanediakite,

    Le script a été migré en postgresql.

    Je n'ai conservé que le mot clef "collate utf8_bin"
    et je voudrais avoir le même comportement que l'utf8_bin en postgresql. C'est possible que l'équivalent soit "collate C"?

    Merci.

Discussions similaires

  1. [MariaDB] Equivalent de generate_series (PostgreSQL) sur MySQL
    Par clereleine dans le forum Requêtes
    Réponses: 0
    Dernier message: 22/06/2017, 13h53
  2. [2008] Equivalent de split_part (PostgreSQL)
    Par anikeh dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 03/06/2014, 19h59
  3. [PostgreSQL] [PostGreSQL] Equivalent de mysql_insert_id
    Par mic79 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 04/06/2007, 19h16
  4. equivalent autoincrement=0 avec postgresql?
    Par bali1234 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 26/03/2007, 21h42
  5. spool equivalent postgresql
    Par car dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 17/05/2004, 09h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo