J'ai une petite table (~ 10 lignes) appelée restrictions
dans ma base de données PostgreSQL, où les valeurs sont supprimées et insérées quotidiennement.
Je voudrais avoir une table appelée restrictions_deleted
, où chaque ligne qui est supprimée de restrictions
sera stockée automatiquement. Depuis restrictions
a une carte d'identité en série, il n'y aura pas de doublons.
Comment puis-je écrire un tel déclencheur dans PostgreSQL?
Vous avez juste besoin de déplacer les anciennes données dans le restrictions_deleted
table avant qu'il ne soit supprimé. Ceci est fait avec le OLD
Type de données. Vous pouvez utiliser une instruction Régula INSERT
et utilisez les valeurs OLD
sous forme que les valeurs à insérer sont insérées.
CREATE TRIGGER moveDeleted
BEFORE DELETE ON restrictions
FOR EACH ROW
EXECUTE PROCEDURE moveDeleted();
CREATE FUNCTION moveDeleted() RETURNS trigger AS $$
BEGIN
INSERT INTO restrictions_deleted VALUES(OLD.column1, OLD.column2,...);
RETURN OLD;
END;
$$ LANGUAGE plpgsql;