linux user group brescia

immagine del castello

Archivio della mailing list

psql e rule

Vernia Damiano melkor.x a tiscali.it
Ven 7 Mar 2003 23:06:02 UTC
On Fri, 7 Mar 2003, fabio wrote:
> la rule l'ho creata per inserire record(tra cui l'id_tab_1)  in tab_2
> quando inserisco un record in tab_1.

> la rule funziona finche' non gli dico di inserire NEW.id_tab1 in tab_2

	??? Ma non e' la rule che deve inserire roba in tab_2? Intendi 
dire che un pezzo di codice della rule funziona ed il resto no o che la 
rule funziona in alcuni casi e non in altri?

> on insert to tab1 where ... 
> do insert into tab2
> select ...NEW.id_tab11 where ...xy =NEW.campo2
                `------'
                   ^id_tab1 , immagino.

> il valore di NEW.campo2 lo considera
> il valore di NEW.campo1 lo fa incazzare

	Ci puoi mandare la linea col "select" un poco meno tagliata? e 
magari anche tutti i campi interessati sia in tab_1 che in tab_2.

> ERROR:  $1 referential integrity violation - key referenced from
> tab_2 not found in tab_1

	Limpido.

> cosa succede? eppure in tab_2 il campo NEW.campo1 l'ho definito come:
>  id_tab1     integer references tab_1(id_tab_1)

	Non ci ho capito un "tab". Da quello che ho capito (poco, a dir la 
verita') dovresti avere una definizione cosi:

id_tab1  integer references tab_1(campo1)
                                  ^^^^^^

perche' tu vuoi inserire in tab_2(id_tab1) il valore di NEW.campo1 . Ma la 
"select" nella rule e' troppo tagliata per capirlo.
	Inoltre: id_tab1 non era un campo di tab_1? Oppure esiste un campo 
"id_tab1" sia in tab_1 che in tab_2?

> se qualcuno volesse darmi una mano a capirci...

	Volentieri, ma avrei bisogno di un poco di informazioni in piu'. 
Le aspetto! *<:-))

-- 
						Ciriciao
					LtC. Melkor?! B. Xapatan

PS: Se i nomi delle tabelle e dei campi sono diversi, usa quelli 
originali: mi si incrociano gli occhi per destreggairmi tra gli '_', e 
magari il tutto e' piu' semplice di quanto non sembra. Riciao!




Maggiori informazioni sulla lista Lug