linux user group brescia

immagine del castello

Archivio della mailing list

R: postgresql foreign key

cartolina cartolina a tiscali.it
Lun 5 Maggio 2003 08:34:26 UTC
>Ho un problema a capire quello che vuoi.
>non sono riuscito a capire cosa vuoi ottenere. se puoi rispiegarlo,

pare che il problema l'abbia io: di comunicazione
intanto grazie, vedro' di spiegarmi meglio:
ho due tabelle, una che possiamo chiamare clienti_anagrafica e un'altra
clienti_dettagli_statistici.
un dato deve esserci in c_anagrafica e puo' non esserci in c_d_statistici.
non puo' esistere un dato in c_d_statistici che non sia collegato a
c_anagrafica.
l'indice principale di c_anagrafica si deve autoincrementare.
a questo viene collegata la tuple di c_d_statistici, che deve essere,
ovviamente, collegata al cliente.
ora, questo problema l'ho risolto con

CREATE TABLE clienti_anagrafica(
id serial PRIMARY KEY,
ecc text,
ecc ecc);

CREATE TABLE clienti_dettagli_statistici(
id serial,
id_anagrafica integer CONSTRAINT idanagrafica
REFERENCES clienti_anagrafica(id)
ON UPDATE CASCADE
ON DELETE CASCADE,
ecc text,
ecc ecc);

ps. sia che io indichi una FOREIGN KEY o no sembra vada uguale. me la mette
da solo.

pgsql mi crea una funzione(?si chiama cosi'?) che auto incrementa il serial
e un'altra
che impedisce l'immissione di un dato che non abbia in id_anagrafica
l'indice di clienti_anagrafica.
le tabelle effettivamente sono molte di piu', e adesso sto cercando
strumenti per creare la struttura.

sto usando come client access, usando tabelle collegate, e l'ultima sfiga,
adesso, e' che quando inserisco un dato,
subito appare "#eliminato" su tutta la tuple perche' non inserisco il campo
id, chiudo la tabella, la riapro
e i dati li ha presi.
immagino che questo derivi dal fatto che la funzione agisce dopo
l'inserimento, o altro che adesso cerco.
ora provo con un INITIALLY IMMEDIATE, a vedere se va

ciao
furio




Maggiori informazioni sulla lista Lug