Disclaimer: sono un programmatore, non un DBA, quindi abbi pazienza con me ...
Ho una vista che uso solo per mappare 2 entità insieme. Devo fare un join tra alcune tabelle diverse per ottenere questo:
CREATE OR REPLACE VIEW V_SCREENING_GROUP_SITES AS (
SELECT SG.SCREENING_GROUP_ID, V.SITE_ID
FROM SCREENING_GROUP SG, VISIT V, VISIT_DATE VD
WHERE VD.VISIT_ID = V.VISIT_ID
AND V.SCREENING_GROUP_ID = SG.SCREENING_GROUP_ID);
Sopra è solo per il contesto, non ti preoccupare troppo. Quello che devo sapere è come fare in modo che i campi nella mia nuova vista V_SCREENING_GROUP_SITES (SCREENING_GROUP_ID e SITE_ID) si comportino come chiavi esterne per le tabelle SCREENING_GROUP e SITE. O importa?
Se fosse un tavolo farei:
ALTER TABLE V_SCREENING_GROUP_SITES
ADD CONSTRAINT FK_SCREENING_GROUP_ID
FOREIGN KEY (SCREENING_GROUP_ID)
REFERENCES SCREENING_GROUP.SCREENING_GROUP_ID;
...
Ma dal momento che è una vista che ovviamente non funziona. Non sono riuscito a trovare una sintassi ALTER VIEW che funzioni per l'impostazione degli FK. Cosa dovrei fare?
(Questo è un database MySQL)