Skip to content
Snippets Groups Projects
Select Git revision
  • 85b8cac9feb33a9c46c51031a87505eaf540b16a
  • master default protected
  • v3-modify-mail
  • snyk-fix-207483a1e839c807f95a55077e86527d
  • translations_3b5aa4f3c755059914cfa23d7d2edcde_ru
  • translations_6e4a5e377a3e50f17e6402264fdbfcc6_ru
  • translations_3b5aa4f3c755059914cfa23d7d2edcde_fa_IR
  • translations_en-yml--master_fa_IR
  • snyk-fix-7d634f2eb65555f41bf06d6af930e812
  • translations_en-yml--master_ar
  • translations_3b5aa4f3c755059914cfa23d7d2edcde_el
  • jfederico-patch-1
  • v2
  • v3
  • v1
  • release-3.1.0.2
  • release-3.1.0.1
  • release-3.1.0
  • release-2.14.8.4
  • release-3.0.9.1
  • release-3.0.9
  • release-3.0.8.1
  • release-2.14.8.3
  • release-3.0.8
  • release-3.0.7.1
  • release-2.14.8.2
  • release-3.0.7
  • release-3.0.6.1
  • release-3.0.6
  • release-3.0.5.4
  • release-3.0.5.3
  • release-2.14.8.1
  • release-3.0.5.2
  • release-3.0.5.1
  • release-3.0.5
35 results

docker-compose.yml

Blame
  • trigger-01.txt 4.24 KiB
    testdb=> create table account_log ( account_id integer, change integer, timestamp timestamp );
    CREATE TABLE
    testdb=> alter table account_log drop column timestamp;
    ALTER TABLE
    testdb=> alter table account_log create column datetime timestamp;
    FEHLER:  Syntaxfehler bei »create«
    ZEILE 1: alter table account_log create column datetime timestamp;
                                     ^
    testdb=> alter table account_log add column datetime timestamp;
    ALTER TABLE
    testdb=> \d account_log
                                 Tabelle »public.account_log«
       Spalte   |             Typ             | Sortierfolge | NULL erlaubt? | Vorgabewert
    ------------+-----------------------------+--------------+---------------+-------------
     account_id | integer                     |              |               |
     change     | integer                     |              |               |
     datetime   | timestamp without time zone |              |               |
    
    testdb=> create trigger after_update_account after update on account for each row begin if new.balance <> old.balance then insert into account_log ( account_id, change, datetime ) values ( new.id, new.balance - old.balance, now () ) end;
    FEHLER:  Syntaxfehler bei »begin«
    ZEILE 1: ...date_account after update on account for each row begin if n...
                                                                  ^
    testdb=> create procedure log_change (account_id integer, change integer) language sql as 'INSERT INTO account_log (account_id, change, datetime) values (account_id, change, now ())';   CREATE PROCEDURE
    testdb=> create trigger after_update_account after update on account for each row log_change (old.account_id, new.balance - old. balance);                                                FEHLER:  Syntaxfehler bei »log_change«
    ZEILE 1: ...date_account after update on account for each row log_change...
                                                                  ^
    testdb=> create trigger after_update_account after update on account for each row call log_change (old.account_id, new.balance - old. balance);
    FEHLER:  Syntaxfehler bei »call«
    ZEILE 1: ...date_account after update on account for each row call log_c...
                                                                  ^
    testdb=> drop procedure log_change;
    DROP PROCEDURE
    testdb=> create function log_change (account_id integer, change integer) returns trigger language sql as 'INSERT INTO account_log (account_id, change, datetime) values (account_id, change, now ())';
    FEHLER:  SQL-Funktionen können keinen Rückgabetyp »trigger« haben
    testdb=> create function log_change (account_id integer, change integer) returns trigger language plpgsql as 'BEGIN; INSERT INTO account_log (account_id, change, datetime) values (account_id, change, now ()); END;';
    FEHLER:  Triggerfunktionen können keine deklarierten Argumente haben
    TIP:  Auf die Argumente des Triggers kann stattdessen über TG_NARGS und TG_ARGV zugegriffen werden.
    KONTEXT:  Kompilierung der PL/pgSQL-Funktion »log_change« nahe Zeile 1
    testdb=> create function log_change () returns trigger language plpgsql as 'BEGIN; INSERT INTO account_log (account_id, change, datetime) values (account_id, change, now ()); END;';     FEHLER:  Syntaxfehler bei »;«
    ZEILE 1: ...ange () returns trigger language plpgsql as 'BEGIN; INSERT I...
                                                                  ^
    testdb=> create function log_change () returns trigger language plpgsql as $$                testdb$> if new.balance <> old.balance then
    testdb$>   insert into log
    
    testdb$>   insert into log_change (account_id, change, datetime) values (old.id, new.balance - old.balance, now ());
    testdb$> end if;
    testdb$> return new;
    testdb$> end;
    testdb$> $$
    testdb-> ;
    FEHLER:  Syntaxfehler bei »if«
    ZEILE 2: if new.balance <> old.balance then
             ^
    testdb=> create function log_change () returns trigger language plpgsql as $$
    begin
      if new.balance <> old.balance then
        insert into log_change (account_id, change, datetime)
               values (old.id, new.balance - old.balance, now ());
      end if;
      return new;
    end;
    $$
    ;
    CREATE FUNCTION
    testdb=> create trigger after_update_account after update on account for each row execute procedure log_change ();
    CREATE TRIGGER                                                                               testdb=>