Skip site navigation (1) Skip section navigation (2)

Re: Comprobar si un campo tiene datos antes de insertar datos en otro.

From: Pablo Braulio <brulics(at)gmail(dot)com>
To: Arturo Munive <arturomunive(at)gmail(dot)com>
Cc: postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Comprobar si un campo tiene datos antes de insertar datos en otro.
Date: 2007-12-21 13:57:49
Message-ID: 476BC65D.9010404@gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Pablo Braulio escribió:
> 
>> prueba con los valores de retorno del trigger
> 
>> Si tu retornas NULL desde un trigger [before a nivel de fila] postgre 
>> cancelará el resto de la operación lo que significa que postgre no
>> disparará ningún trigger siguiente el INSERT, UPDATE, o DELETE no
>> ocurrirá para esa fila
> 
> 
> Hola.
> 
> No acabo de entender lo que dices.
> 
> Cuando se crea el trigger (...before update on tabla for each row...),
> ¿es posible ejecutarlo al hacer un update sobre un campo de una tabla?.
> 
> De ser así, ¿podrías ponerme un ejemplo?, es que no conozco la sintaxis.
> 
> 
> Gracias.
> 

Segun he visto en la documentación se puede ejecutar un trigger según
determinadas columnas:

CREATE TRIGGER statement in PostgreSQL implements a subset of the SQL
standard. The following functionality is currently missing:

    *

      SQL allows triggers to fire on updates to specific columns (e.g.,
AFTER UPDATE OF col1, col2).

Pero no acierto con la sintaxis:

create or replace function updatecontrolinicio() returns trigger as $$
 begin
	if new.inicio is null
	then
		raise exception 'La fase no ha sido iniciada previamente.';
	end if;
	return new;
 end;
$$ language plpgsql;
create trigger updatecontrolinicio before update of fin on controlinicio
for each row execute procedure updatecontrolinicio();

Esto me da error:


ERROR:  error de sintaxis en o cerca de «of»
LINE 10: create trigger updatecontrolinicio before update of fin on c...
                                                          ^


¿Alguna idea?.

Gracias por el comentario.
- --


< ¡¡Nos vemos!!  >
 ----------------------------
    \
     \
                                   .::!!!!!!!:.
  .!!!!!:.                        .:!!!!!!!!!!!!
  ~~~~!!!!!!.                 .:!!!!!!!!!UWWW$$$
      :$$NWX!!:           .:!!!!!!XUWW$$$$$$$$$P
      $$$$$##WX!:      .<!!!!UW$$$$"  $$$$$$$$#
      $$$$$  $$$UX   :!!UW$$$$$$$$$   4$$$$$*
      ^$$$B  $$$$\     $$$$$$$$$$$$   d$$R"
        "*$bd$$$$      '*$$$$$$$$$$$o+#"
             """"          """""""
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHa8ZdK7lGsMchFswRAjCOAJwNKtkyYPwnOhbwRZUSxScKmKqw1wCfRb+2
ClDBXEwz6RBvl9/IK1p1r4c=
=6Ucx
-----END PGP SIGNATURE-----

In response to

Responses

pgsql-es-ayuda by date

Next:From: Luis Rodrigo Gallardo CruzDate: 2007-12-21 14:09:23
Subject: Re: Comprobar si un campo tiene datos antes deinsertar datos en otro.
Previous:From: Pablo BraulioDate: 2007-12-21 13:35:27
Subject: Re: Comprobar si un campo tiene datos antes de insertar datos en otro.

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group