Bonjour,

j'ai un souci avec avec la création d'index pour des clés étrangères

Au niveau de mon schema Oracle, j'ai spécifié un tablespace par défaut pour les datas
Alors, pour commencer dans l'ordre, voici les scripts de création de table :

Table FRA_MN :
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
 
CREATE TABLE FRA_MN (
  ID         NUMBER(15), 
  FEATTYP    NUMBER(4), 
  BIFTYP     NUMBER(1), 
  PROMANTYP  NUMBER(1), 
  JNCTID     NUMBER(15), 
  GEOM       MDSYS.SDO_GEOMETRY);
 
DELETE FROM USER_SDO_GEOM_METADATA 
  WHERE TABLE_NAME = 'FRA_MN' AND COLUMN_NAME = 'GEOM' ;
 
INSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID) 
  VALUES ('FRA_MN', 'GEOM', 
    MDSYS.SDO_DIM_ARRAY 
      (MDSYS.SDO_DIM_ELEMENT('X', -180.000000, 180.000000, 0.050), 
       MDSYS.SDO_DIM_ELEMENT('Y', -90.000000, 90.000000, 0.050)  
      ), 8307 
     ); 
COMMIT;
Table FRA_JC :
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
 
CREATE TABLE FRA_JC (
  ID         NUMBER(15), 
  FEATTYP    NUMBER(4), 
  JNCTTYP    NUMBER(1), 
  ELEV       NUMBER(2), 
  GEOM       MDSYS.SDO_GEOMETRY);
 
DELETE FROM USER_SDO_GEOM_METADATA 
  WHERE TABLE_NAME = 'FRA_JC' AND COLUMN_NAME = 'GEOM' ;
 
INSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID) 
  VALUES ('FRA_JC', 'GEOM', 
    MDSYS.SDO_DIM_ARRAY 
      (MDSYS.SDO_DIM_ELEMENT('X', -180.000000, 180.000000, 0.050), 
       MDSYS.SDO_DIM_ELEMENT('Y', -90.000000, 90.000000, 0.050)  
      ), 8307 
     ); 
COMMIT;
Ensuite, voici le script que je passe pour créer mes index sur ma clé primaire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
ALTER TABLE FRA_JC ADD CONSTRAINT PK_FRA_JC PRIMARY KEY (ID) USING INDEX TABLESPACE GIPSE_INDEX; 
ALTER TABLE FRA_MN ADD CONSTRAINT PK_FRA_MN PRIMARY KEY (ID) USING INDEX TABLESPACE GIPSE_INDEX;
Donc, jusque là, tout va bien, pas d'erreurs

C'est ensuite que cela se gate.
Maintenant, je veux créer un index avec une clé étrangère :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
ALTER TABLE FRA_MN ADD CONSTRAINT FK_FRA_MN_FRA_JC FOREIGN KEY (JNCTID) REFERENCES FRA_JC;
Alors, ceci fonctionne très bien, mais je n'ai pas spécifié mon tablespace pour les index

Lorsque je fait ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
ALTER TABLE FRA_MN ADD CONSTRAINT FK_FRA_MN_FRA_JC FOREIGN KEY (JNCTID) REFERENCES FRA_JC USING INDEX TABLESPACE GIPSE_INDEX;
par contre, celui là, ne fonctionne pas .
Oracle rale à partir de l'instruction USING en disant :
ORA-01735 : option ALTER TABLE non valide
Alors, si quelqu'un à une idée de comment faire, je suis preneur ?
A moins que cela ne soit pas possible à spécifier et qu'Oracle sait où créé l'index pour la clé étrangère en se basant sur les caractéristiques de la clé de primaire sur laquel il va travailler

Merci d'avance pour votre aide