Re: Postgresql

Page principale

Répondre à ce message
Auteur: Ligier Philippe
Date:  
À: Philippe BEAU, guilde
Sujet: Re: Postgresql
Le Jeudi 6 Juin 2002 11:59, Philippe BEAU a écrit :
> Question toute simple,
>
> une requete Postgresql de ce genre est-elle correcte ?
>
> BEGIN WORK
> UPDATE variables SET l32_value='toto' WHERE userid='19'
> COMMIT
>
> ?
>
> Philippe


D'un point de vue strictement syntaxe SQL, il n'y a aucun problème (si
'variables' est bien un nom de table et non pas un nom de colonne d'une
table).

Maintenant si ces lignes sont stockées dans un fichier soumis à exécution par
un commande du style :

    > psql  -d <NomBase>  -f <fichier_requête>


le petit problème résulte du fait qu'il n'y a pas de délimiteur entre les
trois ordres sql 'Begin,', 'Update' et 'Commit'. Dans le cas simple de
l'exemple, chacun des ordres n'occupant qu'une seule ligne, il suffit de le
préciser à 'psql' par l'option '-S' :

    > psql  -d <NomBase>  -f <fichier_requête>  -S


Si la commande 'Update' avait écrit sur plusieurs lignes :

    Update TABLE
        set    variable_1 = <valeur1>    ,
            variable_2 = <valeur2>    ,
            ...
            variable_n = <valeurn>
        where    ...


La seule solution aurait été de placer le caractère de terminaison d'ordre
Sql ';' de 'psql' à la fin de chacun des ordres Sql.

Remarque pour les personnes très intéressées par PostgreSql :

    La traduction en français du livre sur PostgreSql écrit par


         Ewald Geschwinde & Hans-Jurgen Schoning


     est disponible aux éditions CampusPress, au prix de 53Euros
    (mais quand on aime on ne compte pas)


    Le titre exact est :


        PostgreSql Guide du Développeur