<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum PostgreSQL - anulowanie wpisu - wyzwalacz]]></title>
		<link>https://forum.postgresql.org.pl/viewtopic.php?id=455</link>
		<description><![CDATA[Najświeższe odpowiedzi w anulowanie wpisu - wyzwalacz.]]></description>
		<lastBuildDate>Tue, 22 Jun 2010 14:53:11 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: anulowanie wpisu - wyzwalacz]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=2106#p2106</link>
			<description><![CDATA[To może zmień tego triggera na before insert co?]]></description>
			<author><![CDATA[dummy@example.com (rski)]]></author>
			<pubDate>Tue, 22 Jun 2010 14:53:11 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=2106#p2106</guid>
		</item>
		<item>
			<title><![CDATA[Odp: anulowanie wpisu - wyzwalacz]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=2105#p2105</link>
			<description><![CDATA[s to tylko przykład w rzeczywistości wygląda to tak:
[code]
CREATE OR REPLACE FUNCTION pojazdy.f_tri_ai_xxx() RETURNS trigger AS
$$
DECLARE
idpk_poj INTEGER;
idpk_info_diag SMALLINT;
int_nr_diag INTEGER;
czas TIMESTAMP;
BEGIN
idpk_info_diag := NEW.idfk_nr_diag;    
idpk_poj := (trim(leading '_' from TG_TABLE_NAME)::varchar)::integer; 
int_nr_diag :=pojazdy.f_sint_nr_info_diag_int(idpk_info_diag);

IF (int_nr_diag >=16 AND int_nr_diag <=25) THEN 
   EXECUTE 'INSERT INTO pojazdy.t_dg (dt,idfk_poj,idfk_diag)
            VALUES ('''||NEW.dt_data_czas||''', '||idpk_poj||', '||idpk_info_diag||')';
   RETURN NEW;
ELSE
  IF (pojazdy.f_int_int_if_start_bool(idpk_poj,idpk_info_diag)= TRUE) THEN 
     IF(pojazdy.f_int_int_t_actual_bool(idpk_poj, idpk_info_diag) = FALSE) THEN 
      
          EXECUTE 'INSERT INTO pojazdy.t_actual (dt_dg,idfk_poj,idfk_diag)
               VALUES ('''||NEW.dt_data_czas||''', '||idpk_poj||', '||idpk_info_diag||')';

               EXECUTE 'INSERT INTO pojazdy.t_dg (dt,idfk_poj,idfk_diag)
                         VALUES ('''||NEW.dt_data_czas||''', '||idpk_poj||', '||idpk_info_diag||')';
        RETURN NEW;
     ELSE 
       RETURN NULL;
     END IF;
  ELSE
       IF(pojazdy.f_int_int_if_start_exists_bool(idpk_poj,idpk_info_diag)=TRUE)THEN
      czas := pojazdy.f_int_int_start_dt(idpk_poj,idpk_info_diag); 

              EXECUTE 'INSERT INTO pojazdy.t_history (dt_start,dt_stop,idfk_poj,idfk_diag)
               VALUES ('''||czas||''','''||NEW.dt_data_czas||''', '||idpk_poj||', '||idpk_info_diag||')';
  
              EXECUTE 'DELETE  FROM pojazdy.t_actual
               WHERE idfk_poj = '||idpk_poj||' AND idfk_diag = '||pojazdy.f_int_idpk_info_diag_sint(idpk_poj,int_nr_diag-100)||'';
              
               EXECUTE 'INSERT INTO pojazdy.t_dg (dt,idfk_poj,idfk_diag)
                         VALUES ('''||NEW.dt_data_czas||''', '||idpk_poj||', '||idpk_info_diag||')';
          RETURN NEW;
       ELSE
            RETURN NULL;
       END IF;
  END IF;
END IF;
END;
$$
LANGUAGE PLPGSQL;
[/code]]]></description>
			<author><![CDATA[dummy@example.com (WitekS)]]></author>
			<pubDate>Tue, 22 Jun 2010 08:29:27 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=2105#p2105</guid>
		</item>
		<item>
			<title><![CDATA[Odp: anulowanie wpisu - wyzwalacz]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=2103#p2103</link>
			<description><![CDATA[No i jeszcze procedurę bo nie wiem co to za zmienna 's']]></description>
			<author><![CDATA[dummy@example.com (rski)]]></author>
			<pubDate>Fri, 18 Jun 2010 16:31:52 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=2103#p2103</guid>
		</item>
		<item>
			<title><![CDATA[Odp: anulowanie wpisu - wyzwalacz]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=2099#p2099</link>
			<description><![CDATA[definicja wyzwalacza
[code]
DROP TRIGGER IF EXISTS tri_ai_xxx ON pojazdy._xxx ;
CREATE TRIGGER tri_ai_xxx
AFTER
INSERT
ON pojazdy._xxx 
FOR EACH ROW
EXECUTE PROCEDURE pojazdy.f_tri_ai_xxx();
[/code]]]></description>
			<author><![CDATA[dummy@example.com (WitekS)]]></author>
			<pubDate>Fri, 18 Jun 2010 10:25:57 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=2099#p2099</guid>
		</item>
		<item>
			<title><![CDATA[Odp: anulowanie wpisu - wyzwalacz]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=2096#p2096</link>
			<description><![CDATA[Musisz pokazać definicję wyzwalacza.]]></description>
			<author><![CDATA[dummy@example.com (rski)]]></author>
			<pubDate>Thu, 17 Jun 2010 18:14:42 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=2096#p2096</guid>
		</item>
		<item>
			<title><![CDATA[anulowanie wpisu - wyzwalacz]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=2093#p2093</link>
			<description><![CDATA[mam wyzwalacz w którym sprawdzam czy dany rekord może zostać wpisany 
[code]
...
IF (s > 1) THEN
   RETURN NEW;
ELSE
   RETURN NULL;
END IF;
...
[/code]
ale wpisuje mi do tabeli niezależnie od tego jaki jest wynik sprawdzenia IF-em
czy anulowanie wpisu do tabeli w wyzwalaczu jest może realizowane innym sposobem np EXIT zamiast RETURN NULL???]]></description>
			<author><![CDATA[dummy@example.com (WitekS)]]></author>
			<pubDate>Wed, 16 Jun 2010 10:46:02 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=2093#p2093</guid>
		</item>
	</channel>
</rss>
