Bonjour,
puis-je avoir un exemple de requete de creation de tables ayant plusieurs champs en primary key?
Merci d'avance
Bonjour,
puis-je avoir un exemple de requete de creation de tables ayant plusieurs champs en primary key?
Merci d'avance
Bonjour,
Comme une table ne peut avoir qu'un seule PK, l'idée est de poser des AK (Alternative Key), que l'on appelle aussi clés secondaires.
Pour se faire, le(s) champ(s) doi(ven)t être obligatoire(s), et on pose dessus une contrainte d'unicité, tel que le montre l'exemple suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 CREATE TABLE TEST2 ( id1 NUMBER NOT NULL, id2 NUMBER NOT NULL, id3 NUMBER NOT NULL, CONSTRAINT TEST2_PK PRIMARY KEY (id1) USING INDEX TABLESPACE TS_DBA_ARCHI_SE, CONSTRAINT TEST2_AK_1 UNIQUE (id2) USING INDEX TABLESPACE TS_DBA_ARCHI_SE, CONSTRAINT TEST2_AK_2 UNIQUE (id3) USING INDEX TABLESPACE TS_DBA_ARCHI_SE ) TABLESPACE TS_DBA_ARCHI_BE ;
Désolé mais je suis nul en ORACLE...
TABLESPACE toto.... ça suffit pour créer un index?
Si le besoin est de créer une clé primaire sur plusieurs colonnes alors un exemple
est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 create table t ( c1 number, c2 number, c3 number, constraint pk_t primary key (c1, c2) );
En fait, il n'y a même pas besoin de spécifier un tablespace: par défaut les index associés aux contraintes sont créés dans le même tablespace que la table concernée:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 SQL> SQL> drop table TEST2; Table supprimee. SQL> SQL> CREATE TABLE TEST2 2 ( 3 id1 NUMBER NOT NULL, 4 id2 NUMBER NOT NULL, 5 id3 NUMBER NOT NULL, 6 CONSTRAINT TEST2_PK PRIMARY KEY (id1) , 7 CONSTRAINT TEST2_AK_1 UNIQUE (id2) , 8 CONSTRAINT TEST2_AK_2 UNIQUE (id3) 9 ); Table creee. SQL> SQL> select segment_name, tablespace_name from dba_segments where segment_name like '%TEST2%'; SEGMENT_NAME -------------------------------------------------------------------------------- TABLESPACE_NAME ------------------------------ TEST2 USERS TEST2_PK USERS TEST2_AK_1 USERS SEGMENT_NAME -------------------------------------------------------------------------------- TABLESPACE_NAME ------------------------------ TEST2_AK_2 USERS
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager