Bonjour,

Je travaille dans PostgreSQL. J'essaie de contrainte la clé primaire d'une table de toujours commencer par MET puis de garder le reste des caractères en tant qu'integer. Voici ma requête:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
CREATE TABLE meta_test
( 
id_metadon_test character varying (14),
nom character varying (64),
 
CONSTRAINT meta_test_cast
CHECK (
(substring(id_metadon_test from 1 for 3)='MET')
AND
(cast(substring(id_metadon_test from 4 for 4) as integer))),
 
CONSTRAINT meta_test_pk PRIMARY KEY (id_metadon_test));
J'obtiens toujours cette erreur:
'ERREUR: l'argument de AND doit être de type booléen, et non du type integer

********** Error **********

ERREUR: l'argument de AND doit être de type booléen, et non du type integer
SQL state: 42804'
Je ne vois pas où est mon erreur. Est-ce que quelqu'un pourrait m'aider à corriger ma requête svp?

De plus, j'aimerais savoir s'il est possible de mettre le nouveau type de donnée "AS SERIAL" plutôt que INTEGER. Ce serait beaucoup plus pratique d'avoir un champ qui s'auto-incrémente, mais en commençant toujours par "MET".

Merci!