Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/06/2007, 10h44   #1
Invité de passage
 
Étudiant
Inscription : mai 2007
Messages : 6
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2007
Messages : 6
Points : 4
Points : 4
Par défaut Problème avec les CASCADE

Bonjour,

J'ai créer trois tables TSUPPLIER , TLOB et T_SUPP_LOB qui fait la liason entre les deux.

Pour cette dernière voici mon script

CREATE TABLE T_SUPP_LOB(
LOB_ID CHAR(3) NOT NULL,
SUPP_ID VARCHAR(50) NOT NULL,
CONSTRAINT PK_TSLOB PRIMARY KEY (LOB_ID,SUPP_ID),
CONSTRAINT FK_LOB FOREIGN KEY (LOB_ID) REFERENCES TLOB (LOB_ID) ON UPDATE CASCADE,
CONSTRAINT FK_TSUPL FOREIGN KEY (SUPP_ID) REFERENCES TSUPPLIER (SUPP_ID) ON UPDATE CASCADE)
in DUPCASIA.OPCASIA

Et il refuse le UPDATE CASCADE, et même le NO ACTION alors même que dans l'aide DB2 il me dit que j'ai le droit.

Voici l'erreur associée:
CREATE TABLE T_SUPP_LOB( LOB_ID CHAR(3) NOT NULL, SUPP_ID VARCHAR(50) NOT NULL, CONSTRAINT PK_TSLOB PRIMARY KEY (LOB_ID,SUPP_ID), CONSTRAINT FK_LOB FOREIGN KEY (LOB_ID) REFERENCES TLOB (LOB_ID) ON UPDATE NO ACTION, CONSTRAINT FK_TSUPL FOREIGN KEY (SUPP_ID) REFERENCES TSUPPLIER (SUPP_ID) ON UPDATE NO ACTION) in DUPCASIA.OPCASIA
DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL0199N The use of the reserved word "UPDATE" following "" is not valid.
Expected tokens may include: "DELETE ". SQLSTATE=42601

SQL0199N The use of the reserved word "UPDATE" following "" is not valid. Expected tokens may include: "DELETE ".

Explanation:

A syntax error in the SQL statement was detected at the point in
the statement when the reserved word "<keyword>" appears
following "<text>". The "<text>" field indicates the 20
characters of the SQL statement that preceded the reserved word.
Clauses in the statement may be in the wrong order.

As an aid to the programmer, a partial list of valid tokens is
provided in the SQLERRM field of the SQLCA as "<token-list>".
This list assumes the statement is correct to that point.

The statement cannot be processed.

User Response:

Examine the statement in the keyword area. Add a colon or SQL
delimiter, if missing. Verify that the clauses are in the
correct order. If the reserved word identified in the messages
is listed as a reserved word, make the word a delimited
identifier.

NOTE: This error is only applicable to releases of DB2 prior to
Version 2.

sqlcode : -199

sqlstate : 42601

Si quelqu'un à une idée du pourquoi du comment que ça veut pas, je suis preneur !
figolu47 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 16h30   #2
Membre du Club
 
Inscription : février 2007
Messages : 56
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 56
Points : 56
Points : 56
Bonjour,

Quel DB2 ? Quelle version ?

Sur DB2 UDB (LUW) et DB2/400 (pardon, i5... ), on a un ON DELETE CASCADE mais pas un ON UPDATE CASCADE.
clalevee est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2007, 11h40   #3
Invité de passage
 
Étudiant
Inscription : mai 2007
Messages : 6
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2007
Messages : 6
Points : 4
Points : 4
J'ai la version 7.2 OS 390 et effectivement il ne supporte pas les ON UPDATE QUELQUECHOSE,

obligé de recoder à la main!!! alors que je ne peut même pas faire procédure stockée
figolu47 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2007, 23h35   #4
Expert Confirmé Sénior

 
Avatar de fsmrel
 
Spécialiste en bases de données
Inscription : septembre 2006
Messages : 2 887
Détails du profil
Informations professionnelles :
Activité : Spécialiste en bases de données
Secteur : Conseil

Informations forums :
Inscription : septembre 2006
Messages : 2 887
Points : 5 142
Points : 5 142
Pauvre Figolu !


Vous êtes victime des "spécialistes" de Santa Teresa...

Je vous conseille de lire ce que j'ai écrit au sujet de "On Update Cascade" dans la conversation entamée par Franck_P :
"SI & SGBD : comment/où gérer les règles métier ?"

(Cherchez-y "GG24-3312-0")

http://www.developpez.net/forums/sho...d.php?t=252568

Moralité : utilisez à l'avenir des clés primaires qui soient des invariants...
En attendant, si c'est du one shot, débranchez l'intégrité référentielle, faites vos update et rebranchez-la après.
__________________
_
Faites simple, mais pas plus simple ! (A. Einstein)
E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
=> La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

__________________

Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !)
fsmrel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2007, 20h16   #5
Membre Expert

 
Homme François Durand
Spécialiste Delivery Mainframe IBM
Inscription : octobre 2005
Messages : 1 098
Détails du profil
Informations personnelles :
Nom : Homme François Durand
Âge : 53
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Spécialiste Delivery Mainframe IBM
Secteur : Finance

Informations forums :
Inscription : octobre 2005
Messages : 1 098
Points : 1 707
Points : 1 707
Citation:
Envoyé par figolu47
...
Et il refuse le UPDATE CASCADE, et même le NO ACTION alors même que dans l'aide DB2 il me dit que j'ai le droit ...
Encore une fois et comme souvent sur le forum DB2, je pense que vous ne consultez par la bonne documentation sur le bon DB2 ...

DB2 for z/OS n'accepte pas (encore ?) le "ON UPDATE ... " sur la définition des clés étrangères.
Mais je ne vois pas en quoi ça peut poser un problème puisqu'il suffit de passer quelques ordres de màj supplémentaires en SQL ...
Luc Orient est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h28.


 
 
 
 
Partenaires

Hébergement Web