|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : mai 2002 Messages : 75 ![]() |
Salut tous!
Je cherche à créer une table qui contiendrait un nombre maximal d'enregistrements. Lorsque ce nombre est atteint, à l'insertion suivante, il faudrait supprimer l'enregistrement le plus vieux et insérer le nouveau. Je vais essayer de faire ça avec des trigger (ou autre suivant ce que je trouverai), mais je voudrais savoir si il existe une méthode/fonction/commande déjà prévue pour ce fonctionnement en SQL/PostgreSQL. Merci pour vos suggestions. |
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() Inscription : février 2003 Messages : 643 ![]() |
je pense que la solution du trigger est inévitable.....
|
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : mai 2002 Messages : 75 ![]() |
Je me suis lancé dans les triggers, et la création de fonctions. Mais j'ai un soucis... comment passer un nom de table en argument de fonction? J'ai essayé le type name, le type text, mais ça n'est pas accepté!
Quelqu'un sait-il comment passer un nom de table en argument d'une fonction? |
|
|
00
|
|
|
#4 |
|
Membre chevronné
![]() Inscription : février 2003 Messages : 643 ![]() |
tu peux donner ton code STP et dire exactement ce que tu veux faire, ainsi que les messages d'erreur éventuels?
si je comprends bien tu veux créer une seule fonction qui est appelée par des triggers posés sur différentes tables? |
|
|
00
|
|
|
#5 | ||
|
Nouveau Membre du Club
![]() Inscription : mai 2002 Messages : 75 ![]() |
J'ai fini ma fonction, ... je vais voir comment l'utiliser dans un(e) trigger. Si d'ailleurs vous avez quelques lignes à me suggérer pour accélérer mes recherches, tout est le bien venu. En attendant, voilà la fonction: Code :
|
||
|
|
00
|
|
|
#6 |
|
Membre chevronné
![]() Inscription : février 2003 Messages : 643 ![]() |
si je ne m'abuse, ta fonction ne correspond pas à la description de ce que tu désirais faire en première intention?
Cette fonction va être appelée à chaque insertion dans ta base de données (tu as beaucoup d'insertions à faire chaque semaine?) Sinon, ce que tu peux faire c'est d'exécuter un script 1 fois en fin de semaine qui va effacer le contenu de ta table pour les données de la semaine écoulée. J'ai vu dans un post récent que c'était possible d'automatiser ce genre de tâche..... A+ |
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : mai 2002 Messages : 75 ![]() |
HHmmm, ... oui en effet! Après réflexion, c'était plus simple (voire, c'était ce qui était demandé) de vider la table toutes les semaines. Bref, changement de fonction, mais mon soucis persistait pour le nom de la table (ce qui est règlé maintenant). Mais [Résolu] attendra un peu... Tu disais qu'on pouvais automatisé des tâches... comme une crontab interne à la table? |
|
|
00
|
|
|
#8 | ||
|
Membre chevronné
![]() Inscription : février 2003 Messages : 643 ![]() |
Citation:
Citation:
|
||
|
|
00
|
|
|
#9 | ||||
|
Nouveau Membre du Club
![]() Inscription : mai 2002 Messages : 75 ![]() |
... ce doit être la chaleur, ... la fatigue ou je ne sais pas quoi, mais, j'arrive pas à créer mon trigger! Code :
Code :
|
||||
|
|
00
|
|
|
#10 | ||
|
Nouveau Membre du Club
![]() Inscription : mai 2002 Messages : 75 ![]() |
Pour ceux que ça intéresse, voilà le résultat au final: Code :
Merci encore, ... et bon code! |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com