IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

DB2 Discussion :

Clé identity après restaure


Sujet :

DB2

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Par défaut Clé identity après restaure
    Hello les gens;
    Nous avons une table dont il a fallu restaurer l'état vers une situation antérieure, opération réalisée par les soins du dba, qui, pour la mener a bien, a dû enlever la contrainte de la clé de cette table IDENTITY gérée par le SGBDR
    Aujourd'hui en essayant d'y intégrer des données je me prends un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DB2 Database Error: ERROR [23505] [IBM][DB2/AIX64] SQL0803N  One or more values in the INSERT statement, UPDATE statement, or foreign key update caused by a DELETE statement are not valid because the primary key, unique constraint or unique index identified by "1" constrains table "UN_SCHEMA.FBL_MA_TABLE_FACT" from having duplicate values for the index key.  SQLSTATE=23505
    Je me doute que cela est en relation avec l'opération menée pour le restaure. Que doit on faire pour résoudre ce problème proprement ?
    La requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select min(com_seq), max(com_seq) from MA_TABLE;
    renvoi 153692 4411754
    voici le script de création de cette table:
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    CREATE TABLE "UN_SCHEMA"."MA_TABLE" (
      "COM_SEQ"	BIGINT	NOT NULL	GENERATED ALWAYS
        AS IDENTITY (START WITH 1, INCREMENT BY 1, NO CACHE,
           NO MINVALUE, NO MAXVALUE, NO CYCLE, NO ORDER),
      "FACT_NO"	VARCHAR(11),
      "DATE"	DATE,
      "BPID_RECIPIENT"	VARCHAR(35),
      "BPID_LIABLE"	VARCHAR(35),
      "FEECATEGORY"	VARCHAR(2),
      "FEETYPE"	VARCHAR(8),
      "TRANSACTIONREFERENCE"	VARCHAR(16),
      "TRANSACTIONTYPE"	VARCHAR(4),
      "TRADEDATE"	DATE,
      "SETTLEMENTDATE"	DATE,
      "ACNO"	BIGINT,
      "ACCOUNTTYPE"	VARCHAR(2),
      "ACCATEGORY"	VARCHAR(10),
      "ISIN"	VARCHAR(12),
      "ISIN_CREATIONDATE"	VARCHAR(35),
      "INSTRUMENTTYPE"	VARCHAR(5),
      "PRICE"	DECIMAL(15,2),
      "FEEBASIS"	DECIMAL(15,3),
      "AMOUNT"	DECIMAL(15,2),
      "CURRENCY"	VARCHAR(3),
      "BPID_AMC4MF"	VARCHAR(35),
      "DC"	CHARACTER(1),
      "CAPI"	DECIMAL(15,2)	DEFAULT 0
    ) 
      IN "UN_TABLE_SPACE";
     
    ALTER TABLE "UN_SCHEMA"."MA_TABLE"
      DATA CAPTURE NONE
      LOCKSIZE ROW
      APPEND OFF
      NOT VOLATILE;
     
    ALTER TABLE "UN_SCHEMA"."MA_TABLE"
      ADD CONSTRAINT "P_Cle_1" PRIMARY KEY
        ("COM_SEQ");
     
    GRANT CONTROL ON TABLE "UN_SCHEMA"."MA_TABLE" TO USER "UN_USER";
     
    GRANT SELECT, INSERT, UPDATE, ALTER, DELETE,
        INDEX, REFERENCES ON TABLE "UN_SCHEMA"."MA_TABLE" TO USER "UN_USER" WITH GRANT OPTION;
     
    GRANT SELECT, INSERT, UPDATE, ALTER, DELETE,
        INDEX, REFERENCES ON TABLE "UN_SCHEMA"."MA_TABLE" TO USER "UN_USER" WITH GRANT OPTION;
    Merci pour toutes vos contributions.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    Bonjour,

    As-tu essayé un truc du genre :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    alter table ma_table
    alter column ma_col restart with XXXX

    Où XXXX est un chiffre.

  3. #3
    Membre éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Par défaut
    Oui c'est exactement ce que j'ai fait et ça a marché.
    j'ai fait un restart avec la valeur max+1 de la clé. Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. @@IDENTITY apres un INSERT ne fonctionne pas
    Par gderenne dans le forum ASP
    Réponses: 12
    Dernier message: 25/01/2008, 09h49
  2. Récupération des données après restauration du système avec Ghost
    Par digital prophecy dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 12/06/2007, 14h05
  3. Réponses: 5
    Dernier message: 11/01/2007, 15h10
  4. Erreur apres restauration d'une base sur nouveau serveur
    Par tribune dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/02/2006, 15h54
  5. Réponses: 9
    Dernier message: 07/09/2004, 11h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo