dolibarr-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Dolibarr-dev] Install postgres sur sarge


From: Eldy
Subject: Re: [Dolibarr-dev] Install postgres sur sarge
Date: Sat, 05 Mar 2005 15:21:54 +0100
User-agent: Mozilla Thunderbird 1.0 (Windows/20041206)

Francois Tigeot wrote:

On y arrive presque, il ne reste plus que 5 erreurs de ce type:

Création de la table llx_contact_facture        Error DB_ERROR ERROR: syntax error at or 
near ")" at character 282

Elles sont causées par la définition des indexes dans les tables
suivantes:

llx_contact_facture
llx_user_param
llx_so_gr
llx_usergroup_rights
llx_usergroup_user

Le code sql est toujours du même type:

CREATE INDEX idx_llx_contact_facture_fk_soc__fk_contact ON llx_contact_facture 
();

A vue de nez, je dirais qu'il manque le nom de la colonne.

C'est corrigé.

Ceci dit, j'ai regardé rapidement les tables mysql équivalentes, et je n'y
ai pas trouvé de définition d'index. Il serait peut-être plus simple de ne
pas en mettre non plus dans les tables postgres.

En fait, l'index y est bien souos mysql mais il n'y a pas de définition explicite. Quand on a une directive de type UNIQUE(champ1, champ2, ...) sous mysql, mysql crée en plus de la contrainte automatiquement un index (il en choisit le nom tout seul, souvent en prenant le nom du premier champ de la liste même si l'index est composé de plusieurs champs). La conversion pgsql doit donc bien générer la contrainte UNIQUE mais aussi l'INDEX, sauf si postgres fonctionne comme mysql en créant automatiquement l'index associé. A ma connaissance seul Mysql le fait, même Oracle ne le fait pas systématiquement, et pourtant mettre une contrainte unique sans index est une erreur en termes de performances. N'étant pas sur si l'index associé à la contrainte est généré ou non en automatique par pgsql (et sur toutes les versions), je génère l'ordre. Si il y est déjà, cela n'a pas de conséquences néfastes, quand on crée 2 index sur la même clé, même avec un nom différent, le sgbd devrait ignorer le deuxième (sauf mysql qui en crée 2, mais cette fois c'est lui qui agit mal car l'intérêt technique est nul, décidemment le SGBD parfait n'existe pas !).

A retester donc avec les 5 dernières erreurs de corrigées...

--
Laurent Destailleur.
---------------------------------------------------------------
EMail: address@hidden
AWStats : http://awstats.sourceforge.net
AWBot : http://awbot.sourceforge.net
CVSChangeLogBuilder : http://cvschangelogb.sourceforge.net






reply via email to

[Prev in Thread] Current Thread [Next in Thread]