ORA-02437: impossible de valider <nom> - clé primaire violé
J'ai une table:
CREATE TABLE MY_TABLE (
MY_ID NUMBER NOT NULL,
COLUMN_1 NUMBER,
COLUMN_2 NUMBER
);
ALTER TABLE MY_TABLE ADD CONSTRAINT PK_FOO PRIMARY KEY (MY_ID);
à un moment plus tard, lors de l'exécution de l'instruction sql suivante, j'obtiens une erreur:
ALTER TABLE MY_TABLE DROP PRIMARY KEY DROP INDEX;
ALTER TABLE MY_TABLE ADD CONSTRAINT PK_FOO PRIMARY KEY (MY_ID)
ORA-02437: cannot validate PK_FOO - primary key violated
Mon tableau ne contient 3 entrées de tous avec une autre clé primaire qui n'est pas null.
Quelqu'un a une idée de ce que cela pourrait être?
Merci,
Peter
- Pourriez-vous poster votre CREATE TABLE / INSERTS de déclarations, de sorte que nous pouvons reproduire votre cas ?
Vous devez vous connecter pour publier un commentaire.
Vous devez vous pardonner une certaine quantité de scepticisme de notre part. Parce que l'erreur certainement indique une valeur en double.
Ce que vous devez faire est d'utiliser la
exceptions
clause. Cela va vous montrer la ROWIDs des documents qui violent votre contrainte. Vous devrez peut-être créer la table cible: par défaut, le script crée une table appelée EXCEPTIONS:Modifier
Vous avez besoin de comprendre ce qui est différent entre votre code d'installation et de la simplification que vous avez posté ici. Les chances sont que vous avez un ou plusieurs
INSERT
des déclarations qui sont accidentellement exécuté plus d'une fois, tandis que la contrainte n'est pas en vigueur. L'ajout de laEXCEPTIONS INTO
clause à votre code peut vous aider à le retrouver.de ici
Sont 2 clés primaires identiques?
Cette erreur est généralement générée lorsque vous essayez de créer et d'activer une clé primaire dans une table
Je suis upvoting APC de réponse, mais puisque vous semblez avoir des problèmes de mise en œuvre, pourriez-vous poster les résultats de cette requête:
Cela va nous donner (et vous) une certaine idée de la problématique des clés.