Nested table et contrainte UNIQUE
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
CREATE OR REPLACE TYPE t_lgncom IS OBJECT (idmed CHAR(13), qte INTEGER);
CREATE OR REPLACE TYPE col_t_lgncom IS TABLE OF t_lgncom;
CREATE TABLE Commandes
(
idcom CHAR(13) NOT NULL,
idpharma CHAR(13),
datecom DATE,
lgnscom col_t_lgncom,
remisecom NUMBER,
CONSTRAINT pkCommandes PRIMARY KEY (idcom),
CONSTRAINT fkCommandes FOREIGN KEY (idpharma) REFERENCES Pharmas(idpharma)
)
NESTED TABLE lgnscom STORE AS table_lgnscom,
TABLESPACE MEDIC STORAGE (INITIAL 200k NEXT 100k MAXEXTENTS 2); |
Voilà, j'aimerai ajouter la contrainte d'unicité suivante :
dans une meme commande on ne doit pas pouvoir commander plusieurs fois le meme medicament (idmed).
j'ai donc essayé ceci sans illusion:
Code:
1 2
|
ALTER TABLE table_lgnscom ADD CONSTRAINT unique_med UNIQUE(idmed); |
et comme de fait cela s'applique à toutes les commandes
Comment spécifier que je ne veux l'unicité que du couple (idmed,reference du parent) ?
je voudrais egalement savoir s'il est possible de faire un select directement sur la nested table pour afficher toutes les lignes (avec la ref du parent de chaque ligne.
Merci
PS: Merci bcq à SheikYerbouti pour son tuto sur le PL/SQL