Bonjour,
Je fait des tests afin de mettre en place un partitionnement par année d'une table sous Postgresql 8.1. La doc en ligne préconise d'utiliser les rules pour gérer les opérations d'insertion, maj et delete.
J'ai donc déclarer des règles à l'insertion sur ma table mère pour chacune des tables filles qui insèrent les données dans les tables filles.
Par exemple : La table mère est MaTable, j'ai deux tables filles : MaTable_2010 et MaTable_2011 et deux règles :
Mon problème est que lorsque j'insère une ligne dans MaTable, celle ci est bien insérée dans la bonne table fille en fonction de son année, mais également dans la table mère !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 CREATE OR REPLACE RULE matable_insert_2010 AS ON INSERT TO MaTable WHERE new.annee = 2010::numeric DO INSTEAD INSERT INTO MaTable_2010 VALUES (...); CREATE OR REPLACE RULE matable_insert_2011 AS ON INSERT TO MaTable WHERE new.annee = 2011::numeric DO INSTEAD INSERT INTO MaTable_2011 VALUES (...);
Comment faire pour que les données soit uniquement insérées dans les tables filles ???
Partager