|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité(e)
Messages : n/a ![]() |
Hello tt le monde.
J ai un petit souci, donc j ai crée une table mère, les tables filles sont crées dynamiquement avec un trigger avant un insert,update ou delete, pour ça pas de souci, le problème c est qu à la première insertion, il enregistre dans la table mère, à partir de la seconde insertion il prend bien en compte la rule qui lui dit de taper dans les tables filles donc cela voudrait dire qu à la première insertion les rules n existent pas encore ?? Merci d avance. |
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : mai 2004 Messages : 4 490 ![]() |
Bonjour,
j'ai du mal à me figurer la chose... Une description un peu plus détaillée de ta règle et de ton trigger pourrait aider...
__________________
FAQ XML ------------ « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser » Giacomo Leopardi |
|
|
00
|
|
|
#3 | ||
|
Invité(e)
Messages : n/a ![]() |
Ma procédure qui crée la table + les rules qui vont bien donne en gros ceci :
Code :
Le problème se situe au fait que quand je fais une insertion et que la table fille n est pas crée on dirait que PostgreSQL fait l insertion et crée les règles et la table fille ensuite ce qui fait que l enregistrement se fait dans la table mère du coup |
||
00
|
|
|
#4 | |
|
Expert Confirmé Sénior
![]() ![]() Inscription : mai 2004 Messages : 4 490 ![]() |
Citation:
D'une manière générale, je te déconseille fortement d'employer des commandes DDL dans des fonctions trigger à cause des effets de bord indésirables et complexes à appréhender qui peuvent en résulter. Il y a forcément un moyen différent et plus « clean » d'obtenir ce que tu souhaites.
__________________
FAQ XML ------------ « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser » Giacomo Leopardi |
|
|
|
00
|
|
|
#5 |
|
Membre chevronné
![]() Inscription : février 2003 Messages : 643 ![]() |
je vais peut-être dire une connerie mais tu ne dois pas faire un commit après la création de ta table fille et de tes rules avant d'insérer dedans?
|
|
|
00
|
|
|
#6 |
|
Invité(e)
Messages : n/a ![]() |
GrandFather > A moins de créer les tables et les rules d avance j ai pas trouvé d autres moyens mais ça m embeterait pas mal de créer une tache cron, sans couter le cout éventuel, il doit y avoir un autre moyen mais j ai rien trouvé sur le grand ternet
gerald2545 > Je ne pense pas d'autres avis ?? |
00
|
|
|
#7 | |
|
Expert Confirmé Sénior
![]() ![]() Inscription : mai 2004 Messages : 4 490 ![]() |
Citation:
__________________
FAQ XML ------------ « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser » Giacomo Leopardi |
|
|
|
00
|
|
|
#8 | |
|
Invité(e)
Messages : n/a ![]() |
Citation:
|
|
00
|
|
|
#9 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : mai 2004 Messages : 4 490 ![]() |
Et pourquoi tu ne crées pas une seule table utilisée en permanence, et qui intégrerait les informations mois & année dans des champs ?
__________________
FAQ XML ------------ « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser » Giacomo Leopardi |
|
|
00
|
|
|
#10 |
|
Invité(e)
Messages : n/a ![]() |
Lol c est pas possible j ai beaucoup trop d enregistrement par mois, le partionnement s impose
|
00
|
|
|
#11 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : mai 2004 Messages : 4 490 ![]() |
Si tu dois absolument partitionner tes données dans des tables différentes, il vaut effectivement mieux détacher cette tâche d'administration dans un script Shell/SQL. Les triggers et règles ne sont pas vraiment conçus pour ce genre d'utilisation...
__________________
FAQ XML ------------ « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser » Giacomo Leopardi |
|
|
00
|
|
|
#12 |
|
Invité(e)
Messages : n/a ![]() |
J ai trouvé une solution qui marche dans la procédure quand la table n existe pas je rajoute une requete insert vers la table fille puis je retourne un NULL
|
00
|
|
|
#13 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : mai 2004 Messages : 4 490 ![]() |
Je suis content pour toi que cela fonctionne, mais on est pas très loin d'un vilain hack quand même...
__________________
FAQ XML ------------ « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser » Giacomo Leopardi |
|
|
00
|
|
|
#14 |
|
Invité(e)
Messages : n/a ![]() |
Ben en l abscence de réponse même sur la ml ...
|
00
|
Copyright © 2000-2012 - www.developpez.com