Bonjour,
Pourquoi ne pas c
Jean-Paul Argudo/ = 2 Juin, 2008 - 09:53
Bonjour,
Pourquoi ne pas créer deux contraintes tout simplement?
Cordialement,
--
Jean-Paul ARGUDO
http://dalibo.com | http://dalibo.org
[ Vous devez
vous connecter pour poster des commentaires ]
Clé primaire négative ?
SAS/ = 17 Juin, 2008 - 15:59
Bonjour,
Quel est le type d'id_user ?
Librement,
Stéphane Schildknecht
Dalibo
PostgreSQLFr
[ Vous devez
vous connecter pour poster des commentaires ]
le type de l'id_user est seri
benoitXV/ = 24 Juin, 2008 - 16:02
le type de l'id_user est serial mais je peux en changer
[ Vous devez
vous connecter pour poster des commentaires ]
j'ai un peu changer la struct
benoitXV/ = 24 Juin, 2008 - 16:07
j'ai un peu changer la structure de ma table. Je n'ai plus de clé primaire. Et je voudrais mettre une contrainte d'unicité sur 2 champs
le 1er text et le second valeur_absolue(id_user)
Je suis toujours bloqué sur ce même probleme.
Merci d'avance
[ Vous devez
vous connecter pour poster des commentaires ]
Bonjour,
On créé d'abo
Jean-Paul Argudo/ = 1 Juillet, 2008 - 09:31
Bonjour,
On créé d'abord le schéma:
test=# create table b (id serial primary key, data text);
INFO: CREATE TABLE créera des séquences implicites « b_id_seq » pour la colonne serial « b.id »
INFO: CREATE TABLE / PRIMARY KEY créera un index implicite « b_pkey » pour la table « b »
CREATE TABLE
test=# create table a (id serial primary key, b_id integer references b(id));
INFO: CREATE TABLE créera des séquences implicites « a_id_seq » pour la colonne serial « a.id »
INFO: CREATE TABLE / PRIMARY KEY créera un index implicite « a_pkey » pour la table « a »
CREATE TABLE
Je l'ai initialisé avec quelques valeurs ensuite...
Création de l'index unique (index implicite):
test=# alter table a add constraint unicite unique (id, b_id);
INFO: ALTER TABLE / ADD UNIQUE créera un index implicite « unicite » pour la table « a »
ALTER TABLE
test=# select * from a;
id | b_id
----+------
1 | 3
2 | 2
3 | 1
(3 lignes)
test=# insert into a (id, b_id) values (1,3);
ERREUR: la valeur d'une clé dupliquée rompt la contrainte unique « a_pkey »
Cela est normal: violation de la clé primaire. On la fait sauter:
test=# alter table a drop constraint a_pkey;
ALTER TABLE
test=# insert into a (id, b_id) values (1,3);
ERREUR: la valeur d'une clé dupliquée rompt la contrainte unique « unicite »
Cela répond à la question? Est-ce bien le comportement que vous vouliez?
Pour ce qui est de mettre une fonction dans une contrainte, je crois que ça n'est pas possible....
test=# alter TABLE a add constraint unicite_abs unique (id, abs(b_id));
ERREUR: erreur de syntaxe sur ou près de « ( »
LINE 1: ...r TABLE a add constraint unicite_abs unique (id, abs(b_id));
^
--
Jean-Paul ARGUDO
http://dalibo.com | http://dalibo.org
[ Vous devez
vous connecter pour poster des commentaires ]