|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Débutant
Inscription : avril 2005 Messages : 464 ![]() |
Bonjour,
J'ai deux tables Comptes et Operations. Num_compte varchar(10) est une clé primaire dans la table Comptes. J'ai défini une contrainte de clé étrangère ( On delete cascade on update cascade) sur la colonne Num_compte dans la table Operations( pour s'assurer que chaque numéro de compte objet d'une opération est sûrement déjà dans la table mère Comptes). Mais quand je fais un "update" dans la table Comptes pour modifier le Num_compte clé primaire ici, il me signale l'erreur: Cannot add or update a child row : a foreign key constraints fails ....On Delete cascade on update cascade. Vous avez une idée d’où ça provient ? Car normalement si je modifie un Num_compte dans la table mère Comptes; ça devrait modifier tous les num_compte dans la table Operations. mais ici ça refuse ! Merci de vos solutions. Ça me bloque. |
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Citation:
Déjà, c'est une mauvaise idée de prendre un varchar comme clé primaire, il vaut mieux prendre un integer en auto-increment, quitte à déclarer la colonne qui contient le numéro de compte en UNIQUE. Citation:
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
||
|
00
|
|
|
#3 |
|
Débutant
Inscription : avril 2005 Messages : 464 ![]() |
Bonjour,
Merci pour la réponse. J'utilise wamp. En fait dans PhpMyadmin, pour les tables, le type est "InnoDB", l'Interclassement est : latin1_swedish_ci ça veut dire que le moteur de MySQL est InnoDB ? Mais le fait que il me signale l'erreur prouve que il prend bien en compte les contraintes de clés étrangères. |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Le moteur peut-être différent pour chaque table, donc il faudrait nous afficher, pour chacune des deux tables, le résultat d'un SHOW CREATE TABLE, afin que l'on soit bien en phase quant à ce dont on parle.
Par ailleurs, en compta, en termes de modélisation conception, on a plutôt habituellement une table des comptes (sorte de plan comptable ou nomenclature comptable), une table des opérations et un table des lignes d'écritures (1 débit 1 à n crédits ou 1 à n débits pour un crédit).
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
|
00
|
|
|
#5 | ||||||
|
Débutant
Inscription : avril 2005 Messages : 464 ![]() |
Bonjour,
Merci voilà la description des tables. Table Comptes Code :
Code :
Code :
En fait de ma part, y'a pas une politique de comptabilité c'est juste au niveau interne savoir les dépenses de chaque structure. |
||||||
|
|
00
|
|
|
#6 | |
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Bizarre que les SHOW CREATE TABLE n'affiche pas TYPE=INNODB.
Par ailleurs il faut s'assurer de tout cela : Citation:
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com