Salut !
Je voulais modifier la définition de certains attributs d'une table de ma Bdd sous IBConsole mais apparemment les contraintes d'intégrités gènent ma manoeuvre.![]()
Ma table est la suivante:
Les contraintes sont:
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 CREATE TABLE "SALARIE" ( "MAT_SAL" NUMERIC(7, 0) NOT NULL, "CODE_ETAB" CHAR(2) NOT NULL, "CODE_CY" CHAR(10) NOT NULL, "CODE_GRILLE" CHAR(10) NOT NULL, "PASS_SAL" CHAR(10), "ID_SAL" CHAR(20), "ETAT_SAL" NUMERIC(1, 0), "ADM_SAL" NUMERIC(1, 0), "NOM_SAL" CHAR(25) NOT NULL, "PREN_SAL" CHAR(25) NOT NULL, "NUM_BAD" INTEGER NOT NULL, CONSTRAINT "PK_SALARIE" PRIMARY KEY ("MAT_SAL"), CONSTRAINT "UNI_NOM_PRENOM_BADGE" UNIQUE ("NOM_SAL", "PREN_SAL", "NUM_BAD") );
Mon script de modification est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ALTER TABLE "SALARIE" ADD CONSTRAINT "FK_SALARIE_APPARTENI_CYCLE_HO" FOREIGN KEY ("CODE_CY") REFERENCES CYCLE_HORAIRE ("CODE_CY"); ALTER TABLE "SALARIE" ADD CONSTRAINT "FK_SALARIE_APPARTENI_ETABLISS" FOREIGN KEY ("CODE_ETAB") REFERENCES ETABLISSEMENT ("CODE_ETAB"); ALTER TABLE "SALARIE" ADD CONSTRAINT "FK_SALARIE_ATTRIBUER_GRILLE" FOREIGN KEY ("CODE_GRILLE") REFERENCES GRILLE ("CODE_GRILLE");
Mais il apparait le message d'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ALTER TABLE SALARIE ALTER NUM_BAD TYPE DECIMAL(7,0);
Comment contourner ce prob, sachant que je comptais aussi modifier ma clés primaire en Décimal? Qu'est ce qui empêche cette modif?Unsuccessful metadata update
MODIFY RDB$RELATION_FIELDS failed
action cancelled by trigger (1) to preserve data integrity
Cannot update index segment used by an Integrity Constraint
Statement: ALTER TABLE SALARIE
ALTER NUM_BAD TYPE DECIMAL(7,0)
Merci
Seb![]()
Partager