Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    50

    [PostgreSQL] trigger che scatta sempre

    Salve, ho un piccolo problema con questo trigger:
    codice:
    -- Function: evita_doppia_prenotazione()
    
    -- DROP FUNCTION evita_doppia_prenotazione();
    
    CREATE OR REPLACE FUNCTION evita_doppia_prenotazione()
      RETURNS trigger AS
    $BODY$
    	    BEGIN
    	        IF ( NEW."Cod_s" = ANY (SELECT "Prenotazione"."Cod_s" 
    					FROM "Prenotazione"
    					WHERE NEW."Data" = "Prenotazione"."Data"
    					GROUP BY "Prenotazione"."Cod_s"
    					)
    		)				
    			THEN
    				RAISE EXCEPTION 'Lo studente ha già prenotato un altra postazione allo stesso orario';
    	        END IF;
    	        RETURN NEW;
    	    END;
    
    	    
    $BODY$
      LANGUAGE 'plpgsql' VOLATILE
      COST 100;
    ALTER FUNCTION evita_doppia_prenotazione() OWNER TO postgres;
    Il problema è che scatta sempre, anche se inserisco la prima riga nella tabella "Prenotazione"
    Non capisco cosa c'è di sbagliato.

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Non conosco la sintassi di postgresql ma proverei con

    if exists (select .... ) then
    RAISE EXCEPTION 'Lo studente ha già prenotato un altra postazione allo stesso orario';

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    50
    Nada, scatta comunque

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    50
    Nessuna idea?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.