Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    43

    delete records in tabelle multiple

    Ciao


    Ho un problema ...dovrei cancellare dei dati su delle tabelle differenti strutturate gerarchicamente .

    la struttura e le relazioni tra le tabelle è così:

    tabella NONNI ---------

    id | nome | cogmome | città

    ........................................

    tabella FIGLI ----------

    id | id_nonno | nome | cognome | città

    ...............................................

    tabella NIPOTI ----------

    id | id_figlio | nome | cognome | città


    ..........................


    posso cancellare un NONNO e di conseguebza tutta la sua generazione (avendo a disposizione solo l'id del nonno ) con una sola querry con mySql 4.1.18 ?

    qualche consiglio ?

    grazie

    Fly

  2. #2
    se imposti opportunamente le foreign key, dopo puoi impostare anche la "reazione" alla cancellazione... ovvero ON DELETE CASCADE (cioè.. nel momento in cui viene cancellato un record in una tabella, vengono cancellati i record corrispondenti nelle tabele che la referenziano)

    dai un'occhiata alla documentazione di MySql 4.1 che non ricordo nè se tutto questo è supportato (è standard sql cmq) nè se ci sono varianti

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    43
    il mio provider non mi ha abilita InnoDB
    perciò non posso usare le FOREIGN KEY tramite le tabelle di tipo InnoDB.

    come posso fare con le tabelle di tipo MyISAM ?


    grazie

    Fly

  4. #4
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    DELETE FROM nonni, figli, nipoti WHERE nonni.ID = figli.id_nonno AND figli.ID = nipoti.id_figlio AND nonni.ID = qualcosa

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    43
    Grazie

    semplice ed efficace


    ho dovuto inserire i nome delle tabelle anche nel DELETE perche mi dava errore di sintassi #1064.

    cosi non mi da nessun errore:

    DELETE nonni, figli, nipoti FROM nonni, figli, nipoti WHERE nonni.ID = figli.id_nonno AND figli.ID = nipoti.id_figlio AND nonni.ID = qualcosa


    grazie ancora


    Fly

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.