Dost67 | Je voulais déclarer des UNSIGNED pour n'avoir que des entiers positifs. Mais j'ai utilisé un CHECK à la place.
Il reste toujours un flou sur les UNIQUE.
En fait je vais mettre un exemple :
Code :
- CREATE TABLE Personnels (
- Id_Personnel INTEGER NOT NULL
- GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1),
- Nom_Personnel VARCHAR(255) NOT NULL,
- Prenom_Personnel VARCHAR(255) NOT NULL,
- Date_Naissance_Personnel DATE NOT NULL,
- Adresse_Personnel CLOB(1000) NOT NULL,
- Telephone_Personnel CHAR(10),
- Email_Personnel VARCHAR(255),
- Numero_INSEE CHAR(13),
- Situation_Maritale VARCHAR(11) NOT NULL
- CHECK (Situation_Maritale IN
- ('Célibataire', 'Marié', 'Divorcé', 'Veuf')),
- PRIMARY KEY (Id_Personnel) ,
- UNIQUE (Nom_Personnel, Prenom_Personnel, Date_Naissance_Personnel)
- );
|
Le prof veut que les clés candidates soient déclarées UNIQUE. Le problème c'est que je veux que Nom, Prénom, Date_Naissance soit unique mais je voudrais en fait créer un index que sur Nom(3) car sinon bonjour l'utilisation inutile de l'espace disque.
Et aussi : j'ai lu que CLOB c'est pas bon de l'utiliser car DB2 le gère mal, que dois-je utiliser à la place ? |