[QGIS-it-user] Spatialite - Suggerimenti per Trigger
Aldo Gessa
aldogessa78 a gmail.com
Ven 21 Giu 2019 15:30:06 PDT
Salve, non riesco a risolvere questo problema.
Ho creato un DB e sto cercando di impostare un trigger su una tabella
nominata "ATTO_AMMINISTRATIVO", capace di NON PERMETTERE L'INSERT solo
qualora siano soddisfatte contemporaneamente le seguenti condizioni:
1) se nella colonna "tipo_atto" il valore è diverso da 1 o 2;
2)se la colonna "id_atto_impegno_di_spesa" è valorizzata (NOT NULL).
Ho scritto dopo mille peripezie il seguente trigger:
CREATE TRIGGER ControllaNumImpegno_Insert AFTER INSERT ON
ATTO_AMMINISTRATIVO
BEGIN
SELECT
CASE
WHEN NEW.tipo_atto NOT IN (1,2) *AND* NEW.id_atto_impegno_di_spesa NOT NULL
THEN
RAISE (ABORT, 'IL TIPO DI ATTO AMMINISTRATIVO SELEZIONATO NON GENERA UN
IMPEGNO DI SPESA')
END;
END;
Purtroppo fallisce miseramente in quanto, nonostante la clausola AND
nell'istruzione WHEN, questa non viene considerata ed il trigger controlla
solo la condizione 1) con la conseguenza che vieta qualsiasi INSERT per
"tipo_atto" NOT IN (1,2) anche qualora "id_atto_impegno_di_spesa " è NULLO.
E' COME SE LA CLAUSOLA *AND* NON FOSSE AMMESSA.
Ho fatto prove con la clausola OR e funziona (ma purtroppo non soddisfa la
condizione da me cercata).
Sono certo che sto sbagliando tutto ma prima di arrendermi mi farebbe
piacere conoscere la soluzione.
Spero di essermi spiegato e che ci sia qualcuno che possa illuminarmi.
Saluti
Aldo
--
Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html
Maggiori informazioni sulla lista
QGIS-it-user