Salve a tutti, sto cercando di scrivere una funzione in pgAdmin, ma mi viene restituito un errore... potreste aiutarmi? La query è la seguente:

CREATE OR REPLACE FUNCTION pippo() RETURNS TRIGGER AS $$
BEGIN
  CHECK (NOT EXISTS (SELECT * FROM padre WHERE cod_fis NOT IN (SELECT padre FROM paternita)));
END;
$$ LANGUAGE plpgsql;

Il tipo di errore che mi viene restituito è Syntax error at or near "CHECK". Grazie in anticipo.

chiesto 01 Dec '14, 17:12

Stringara's gravatar image

Stringara
20113

modificato 02 Dec '14, 10:05


Non sono un esperto di SQL, ma dopo il BEGIN non dovrebbe esserci un punto e virgola?

[...]
BEGIN;
  CHECK [...];
END;
[...]

almeno così mi sembra di capire dal manuale di PostgreSQL, a pagina 1288 ed esempi precedenti.

coll. permanente

ha risposto 02 Dec '14, 13:57

dadexix86's gravatar image

dadexix86 ♦♦
17.0k916161

modificato 02 Dec '14, 13:58

Il punto e virgola dopo il BEGIN non ci va, infatti se lo inserisco mi dà errore proprio lì; inoltre anche nel manuale a pagina 306 dove ci sono le funzioni per i trigger non viene inserito. Purtroppo non è questo il problema.

(02 Dec '14, 15:14) Stringara Stringara's gravatar image
La tua risposta
abilita/disabilita anteprima

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×21
×5
×3

domanda posta: 01 Dec '14, 17:12

domanda visualizzata: 2,522 volte

ultimo aggiornamento: 02 Dec '14, 15:36

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.