[FIREBIRD] - trigger i dane z zapytania
jarudzik@wp.pl - 25-01-2007 00:01
[FIREBIRD] - trigger i dane z zapytania
Witam
Mam konkretny problem
Sa tabele:
CREATE TABLE ABC ( ID_ABC BIGINT NOT NULL, A VARCHAR(255), B VARCHAR(255), C VARCHAR(255), );
oraz
CREATE TABLE HISTORY ( ID_HISTORY BIGINT NOT NULL, ACTION_ID BIGINT NOT NULL, ACTION_TABLE VARCHAR(255), ACTION_DATE TIMESTAMP NOT NULL, ACTION_VALUE VARCHAR(255), );
Aby miec podgląd na historie zmian w tabeli ABC zakładam trigger
CREATE TRIGGER TR_ABC FOR ABC ACTIVE AFTER INSERT POSITION 1 AS declare variable ACTION_TABLE varchar(255);' declare variable ACTION_VALUE varchar(255); BEGIN INSERT INTO HISTORY (ACTION_ID,ACTION_TABLE,ACTION_DATE,ACTION_VALUE) VALUES (NEW.ID,:P_TABLE_NAME,CURRENT_TIMESTAMP,'ABC') ; END
Chodzi o to aby wstawic w kolumne action_value tylko wartosci podane w insert oddzielone jakmis separatorem np ";".
Z gory dzieki. Pozdrawiam Rafał
sg - 25-01-2007 00:01
Dnia 24-01-2007 o 13:35:42 <jarudzik@wp.pl> napisał(a):
> Witam > > Mam konkretny problem > > Sa tabele: > > CREATE TABLE ABC ( > ID_ABC BIGINT NOT NULL, > A VARCHAR(255), > B VARCHAR(255), > C VARCHAR(255), > ); > > oraz > > CREATE TABLE HISTORY ( > ID_HISTORY BIGINT NOT NULL, > ACTION_ID BIGINT NOT NULL, > ACTION_TABLE VARCHAR(255), > ACTION_DATE TIMESTAMP NOT NULL, > ACTION_VALUE VARCHAR(255), > ); > > Aby miec podgląd na historie zmian w tabeli ABC zakładam trigger > > CREATE TRIGGER TR_ABC FOR ABC > ACTIVE AFTER INSERT POSITION 1 > AS > declare variable ACTION_TABLE varchar(255);' > declare variable ACTION_VALUE varchar(255); > BEGIN > INSERT INTO HISTORY (ACTION_ID,ACTION_TABLE,ACTION_DATE,ACTION_VALUE) > VALUES (NEW.ID,:P_TABLE_NAME,CURRENT_TIMESTAMP,'ABC') ; > END > > Chodzi o to aby wstawic w kolumne action_value tylko wartosci podane w > insert > oddzielone jakmis separatorem np ";". > > Z gory dzieki. > Pozdrawiam > Rafał >
Może tak?
---------------------------------------------------------------- CREATE TRIGGER TR_ABC FOR ABC ACTIVE AFTER INSERT POSITION 1 AS declare variable ACTION_TABLE varchar(255); declare variable ACTION_VALUE varchar(255); BEGIN INSERT INTO HISTORY (ACTION_ID,ACTION_TABLE,ACTION_DATE,ACTION_VALUE) VALUES (NEW.ID,:P_TABLE_NAME,CURRENT_TIMESTAMP, NEW.A || ';' || NEW.B || ';' || NEW.C ) ; END ----------------------------------------------------------------
jarudzik@wp.pl - 26-01-2007 00:03
> ---------------------------------------------------------------- > CREATE TRIGGER TR_ABC FOR ABC > ACTIVE AFTER INSERT POSITION 1 > AS > declare variable ACTION_TABLE varchar(255); > declare variable ACTION_VALUE varchar(255); > BEGIN > INSERT INTO HISTORY (ACTION_ID,ACTION_TABLE,ACTION_DATE,ACTION_VALUE) > VALUES (NEW.ID,:P_TABLE_NAME,CURRENT_TIMESTAMP, NEW.A || ';' || NEW.B || > ';' || NEW.C ) ; > END > -----------------------------------------------------------------
Dzieki wielki działa ale czy to mozna jakos zautomatyzowac ? wrzucic w jaks petle cos w stylu foreach (NEW) zmienna .=NEW.";"
?? Pozdrawiam Rafał
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Oracle, SQL, PL/SQL. Jak =?ISO-8859-2?Q?napisa=E6_zapytanie=2C?==?ISO-8859-2?Q?_kt=F3re_zwr=F3ci_nazw=EA_atrybutu=2C_kt=F3reg o?==?ISO-8859-2?Q?_warto=B6ci_spe=B3niaj=B1_zadany_warunek?=
=?ISO-8859-2?Q?Narz=EAdzie_do_budowania_zapyta=F1_SQL=2C?==?I SO-8859-2?Q?_PL/PgSQL=2C_PL/SQL=2C_T-SQL?=
[ms sql] =?ISO-8859-2?Q?wy=B6wietlenie_pierwszych_5_rekord?==?ISO-8859-2?Q?=F3w_z_zapytania_=3F_odpowiednik_ROWNUM_w_o?== ?ISO-8859-2?Q?raclu_dla_MS_SQL=27a?=
phpMyAdmin zadaje =?ISO-8859-2?Q?z=B3e_zapytania=2E=2E=2E_Dl?==?ISO-8859-2?Q?aczego=3F?=
[MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?=
[mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
[oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?=
[mysql/php] jak =?ISO-8859-2?Q?zliczy=E6_ilo=B6=E6_unikalnyc?==?ISO-8859-2?Q?h_rekord=F3w_w_jednym_zapytaniu=3F?=
[MySQL] Zapytanie z =?ISO-8859-2?Q?dw=F3ch_tabel_na_raz_?==?ISO-8859-2?Q?i_grupowanie_po_wsp=F3lnym_polu=2E_Jak_=3F?=
mecze sie i mecze i nic - zapytanie czesciowe
zanotowane.pldoc.pisz.plpdf.pisz.platanvarne633.opx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|