Salve a tutti,
sto facendo un progetto per rappresentare la base di dati di un'ipotetica Guida Commerciale .

Ogni anno, vengono selezionate delle aziende. Alle aziende selezionate viene inviato un questionario, che deve essere compilato e poi rispedito.
Le aziende selezionate possono inviare annunci che finiscono in un annuario.

Questo è lo schema a cui avevo pensato :

codice:
CREATE TABLE azienda(
id_azienda SERIAL,
nome varchar(40) NOT NULL,
piva varchar(15) NOT NULL,
rsociale varchar(50) NOT NULL ,
PRIMARY KEY (id_azienda),
UNIQUE (piva)
);

CREATE TABLE selezionata(
id_selezione SERIAL,
annoselezione INTEGER NOT NULL,
azienda_ide integer,
PRIMARY KEY (id_selezione,annoselezione,azienda_ide),
FOREIGN KEY (azienda_ide) REFERENCES azienda(id_azienda) on update CASCADE on delete SET NULL
);
 
CREATE TABLE annuario(
id_annuario SERIAL, 
anno integer NOT NULL,
dinizio date NOT NULL,
dfine date NOT NULL,
impaginazione integer DEFAULT 0,
nastro integer DEFAULT 0,
ciclo integer DEFAULT 0,
UNIQUE (anno),
PRIMARY KEY (id_annuario),
CONSTRAINT check_data CHECK (dfine > dinizio)
);

CREATE TABLE annuncio(
id_annuncio SERIAL,
testo varchar (100),
tipo varchar (30),
stato integer DEFAULT 0,
datainvio date NOT NULL,
azienda_id integer,
pagina integer,
anno_annuario integer NOT NULL,
PRIMARY KEY (id_annuncio),
FOREIGN KEY (azienda_id) REFERENCES selezionata(id_selezione) on update CASCADE on delete CASCADE,
FOREIGN KEY (anno_annuario) REFERENCES annuario(anno) on update CASCADE on delete CASCADE
);

CREATE TABLE questionario (
id_questionario SERIAL,
azienda integer,
campoattivita varchar(20),
fatturato integer,
numeroaddetti integer,
cda varchar(300),
presidente varchar (40),
delegato varchar (40),
inviato integer DEFAULT 0,
rispostaricevuta integer DEFAULT 0,
PRIMARY KEY (id_questionario),
FOREIGN KEY (azienda) REFERENCES selezionata(id_selezione) on update CASCADE on delete CASCADE
);

Quando provo a creare il db, mi viene fuori errore 42839 : l'ultima parte della schermata è questa ..

codice:
NOTICE:  CREATE TABLE will create implicit sequence "annuncio_id_annuncio_seq" for serial column "annuncio.id_annuncio"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "annuncio_pkey" for table "annuncio"
ERROR:  there is no unique constraint matching given keys for referenced table "selezionata"

********** Errore **********

ERROR: there is no unique constraint matching given keys for referenced table "selezionata"
Stato SQL: 42830

Qualcuno sa aiutarmi ? All'inizio pensavo fosse un problema di chiavi esterne ( in principio facevo puntare una chiave esterna ad un altra esterna che a sua volta puntava ad id_:azienda ) , pero' anche cambiando mi da' lo stesso errore ...

Grazie in anticipo delle risposte,

EDIT : provando ora con mysql non da alcun errore .... c'è una sintassi particolare ??