Outils pour utilisateurs

Outils du site


tips_informatiques:bases_de_donnees:postresql:postresql

Ceci est une ancienne révision du document !


TRIGGER BEFORE DELETE

Version: PostgreSQL 8.4.4

But: Créer un trigger faisant un UPDATE lors du DELETE d'un record

Remarques:

Un trigger doit obligatoirement faire appel à une fonction. On doit donc d'abord déclarer la fonction correspondante. Une fonction de type trigger doit retourner une valeur (FIXME: compléter) afin de permettre à l'action de continuer. Si elle retourne NULL, l'action en cours se termine.

La première ligne commentée ci-dessous sert à installer le language 'plpgsql' utilisé ici comme language de la fonction. Cette commande ne doit être lancée qu'une seule fois.

--CREATE LANGUAGE 'plpgsql';
CREATE OR REPLACE FUNCTION users_clear_created_by() RETURNS TRIGGER AS 
	'BEGIN
		UPDATE tan_users SET created_by = null WHERE created_by = OLD.id;
		UPDATE tan_users SET modified_by = null WHERE modified_by = OLD.id;
 
		RETURN OLD;
	END;'
LANGUAGE 'plpgsql';
 
DROP TRIGGER IF EXISTS users_clear_created_by ON tan_users;
 
CREATE TRIGGER users_clear_created_by
BEFORE DELETE ON tan_users FOR EACH ROW
	EXECUTE PROCEDURE users_clear_created_by();

Restaurer un dump

Version: PostgreSQL 8.4.4

But:

Restaurer une base de donnée à partir d'un fichier généré avec la commande pg_dump

Commande:

sudo su - postgres -c "psql database_to_restore < /path/to/database_dump.sql"
tips_informatiques/bases_de_donnees/postresql/postresql.1284968829.txt.gz · Dernière modification: 2010/09/20 00:00 (modification externe)