- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Vincoli il MySql
-
Vincoli il MySql
Salve,
devo imporre un vincolo di inclusioen su di una tabella in MySql 5.
Qualcuno sà come posso fare??Grazie
-
non so proprio cosa sia quindi sono curioso di imparare qualcosa di nuovo
posso chiederti cos'è? poi provo a fare una ricerca e vediamo di trovare una soluzione.
-
Vincolo di inclusione:
Hai due tabelle A(A1,A2) e B(B1,B2). Il vincolo:"Ogni elemento che si trovano in A1 deve comparire almeno una volta in B1" è un vincolo di inclusione. Nel modello E.R. corrisponde alla cardinalità minima uguale ad 1 tra la Entità A e la relazione B dove B1 è la chiave primaria A, cioè A1.Comunque mi sono confuso, non è quello che mi serve... me ne sono accorto adesso. A me serve il vincolo di Foreign Key tra A1 e B1... cioè quello che appare in B1 deve essere presente in A1.
Grazie mille per l'interessamento.
-
quindi si tratta di relazioni tra tabelle
devi usare i join.
ne esistono di 3 tipi:
inner join
left join
right joinil primo caso, inner join prevede che gli elementi siano presenti sia nella tabella a che nella tabella b
select * from a inner join b on a.campo_a = b.campo_b
il secondo caso prevede di estrarre tutti gli elementi presenti nella tabella a(quella che sta a sinistra dell'inner) e tutti gli elementi della b che sono presenti nella a
select * from a left join b on a.campo_a = b.campo_b
il secondo caso prevede di estrarre tutti gli elementi presenti nella tabella b(quella che sta a destra dell'inner) e tutti gli elementi della a che sono presenti nella b
select * from a right join b on a.campo_a = b.campo_b
-
Tramite sql non avevo problemi... a me interessava inserire, se è possibile, un trigger. Nel senso che se, tramite interfaccia grafica, inserisco, continuando con l'esempio di prima, un elemento in B1 che non compare in A1, non me lo deve permettere.
Grazie
-
mi pare di aver letto che sull'ultima versione di mysql c'è la possibilità di gestire trigger, store procedure, viste etc ma non ho mai provato mi spiace.
forse qualcuno ha avuto già la voglia di sperimentare e può darti risposte più precise.