Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Eliminare record correlati

    Ciao a tutti, ho tre tabelle relazionate tra di loro appartenenti ad un database di tipo InnoDB e sono così strutturate:

    tabella gare:
    id
    115
    114

    tabella gare_gruppi:
    idGara - idGruppo
    115 - 1
    115 - 2
    114 - 3
    114 - 4

    tabella gruppi_ditte:
    idGruppo - idDitta
    1 - 351
    1 - 352
    1 - 353
    2 - 354
    2 - 365
    2 - 220
    3 - 105
    3 - 221
    4 - 330
    4 - 328

    Attualmente per eliminare ad esempio la gara n° 115 e i relativi record correlati, uso più di una query che procedono con l'eliminazione, ma questo a volte mi mette in difficoltà..

    C'è un modo per eliminare automaticamente i record correlati o perlomeno potreste scrivermi una query che fa questo? Vi ringrazio in anticipo.
    Ultima modifica di magic_key; 06-03-2015 a 10:55

  2. #2
    Le mie ricerche a riguardo proseguono.. Credo che ON DELETE CASCADE faccia al caso mio, devo solo capire come si usa essendo la prima volta.. un aiutino?

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    71
    Modifica lo schema nella creazione delle tabelle

  4. #4
    Cioè? L'unica cosa che mi viene in mente è aggiungere la colonna "idGara" alla terza tabella "gruppi_ditte" in modo da dare un riferimento alla query..

  5. #5
    Ciao,

    È possibile definire "foreign key constraints" sulle tabelle con ON DELETE opzione CASCADE.

    Quindi eliminare il record dalla tabella padre rimuove i record da tabelle figlio.

    Controlla questo link: http://dev.mysql.com/doc/refman/5.5/...nstraints.html

    Cristiana,
    #OracleCloud

  6. #6

  7. #7
    Se ho capito bene la "foreign key constraints" è utile solo in casi di eliminazione/aggiornamento dei record.. Se invece volessi solo visualizzare nella pagina un record "padre" e tutti i relativi record "figli" devo lavorare sulle relazioni e sulle INNER JOIN, dico bene?

  8. #8
    Ciao,

    Foreign keys sono utilizzate per garantire l'integrità dei dati (quando sono sopportate).

    Per recuperare i dati da due tabelle, è necessario unirle, anche se non hanno un rapporto definito, anche se in genere tu devi unirle utilizzando la chiave primaria e seccondaria.

    Tuttavia, è possibile unire le tabelle su qualunque colonne che tu desideri, indipendentemente dal fatto che le relazioni sono state definite.


    Cristiana,
    #OracleCloud

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.