• User Newbie

    Vincoli il MySql

    Salve,
    devo imporre un vincolo di inclusioen su di una tabella in MySql 5.
    Qualcuno sà come posso fare??

    Grazie :ciauz:


  • Super User

    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. :ciauz:


  • User Newbie

    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. :fumato:


  • Super User

    quindi si tratta di relazioni tra tabelle

    devi usare i join.

    ne esistono di 3 tipi:
    inner join
    left join
    right join

    il 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

    :ciauz:


  • User Newbie

    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 :mmm:


  • Super User

    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.