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 :
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
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;
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
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;
Donc, jusque là, tout va bien, pas d'erreurs
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;
C'est ensuite que cela se gate.
Maintenant, je veux créer un index avec une clé étrangère :
Alors, ceci fonctionne très bien, mais je n'ai pas spécifié mon tablespace pour les index
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;
Lorsque je fait ceci :
par contre, celui là, ne fonctionne pas .
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;
Oracle rale à partir de l'instruction USING en disant :
Alors, si quelqu'un à une idée de comment faire, je suis preneur ?ORA-01735 : option ALTER TABLE non valide
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
Partager