USING INDEX TABLESPACE sur des FOREIGN KEY
Bonjour,
j'ai un souci avec avec la création d'index pour des clés étrangères :cry:
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:
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:
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:
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 :yaisse2:
C'est ensuite que cela se gate.
Maintenant, je veux créer un index avec une clé étrangère :
Code:
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 :king:
Lorsque je fait ceci :
Code:
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 :cry:.
Oracle rale à partir de l'instruction USING en disant :
Citation:
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 ;)