Codes d'erreurs avec psql

La norme SQL évolue : tirez le meilleur d'un SGBD qui la respecte en écrivant du SQL moderne avec en complément PL/pgSQL, php, java etc.
Répondre
Phil
Administrateur du site
Messages : 291
Enregistré le : mar. 1 sept. 2015 00:38
Localisation : France
Contact :

Codes d'erreurs avec psql

Message par Phil »

Merci à Vincent pour sa question :

"Avec Oracle et sql*plus nous avons des codes d'erreur qui permettent plus facilement de chercher sur internet ou dans la base de connaissances. est-il possible de les avoir dans psql ?"

Réponse :
Oui. Il faut positionner le niveau de verbosité de psql en positionnant \set VERBOSITY verbose, par exemple dans .psqlrc mais c'est aussi possible en interactif.
Exemple :

Code : Tout sélectionner

select version();
                                                 version
----------------------------------------------------------------------------------------------------------
 PostgreSQL 9.6.9 on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit
(1 ligne)

create table t1(c1 int primary key);
CREATE TABLE

insert into t1 values(1);
INSERT 0 1

insert into t1 values(1);
ERREUR:  la valeur d'une clé dupliquée rompt la contrainte unique « t1_pkey »
DÉTAIL : La clé « (c1)=(1) » existe déjà.

 \set VERBOSITY verbose

insert into t1 values(1);
ERREUR:  23505: la valeur d'une clé dupliquée rompt la contrainte unique « t1_pkey »
DÉTAIL : La clé « (c1)=(1) » existe déjà.
NOM DE SCHÉMA : postgres
NOM DE TABLE : t1
NOM DE CONTRAINTE : t1_pkey
EMPLACEMENT : _bt_check_unique, nbtinsert.c : 433

Le numéro d'erreur correspondant à une violation de contrainte unique apparaît ici clairement : 23505
Cdlt. Phil - pgphil.ovh
Répondre