Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [SQL] Impedire cancellazione

    Buongiorno:
    Come impedisco l'eliminazione di una tabella referenziata?
    jabjoint

  2. #2
    della tabella o dei record della tabella?

  3. #3
    Quote Originariamente inviata da optime Visualizza il messaggio
    della tabella o dei record della tabella?

    Si dei records certo, Fai bene a precisare....Grazie.
    jabjoint

  4. #4
    il fatto che in un'altra tabella ci sia un FK che punta a quel record dovrebbe già impedirne la cancellazione

  5. #5
    Ciao, Non deve esser possibile eliminare articolo se relazionato ad un ordine.
    jabjoint

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Generalmente è già così se c'è una relazione di foreign key. Quando si costruisce la foreign key si può anche specificare che tipo di azione intraprendere quando viene tentata la cancellazione di un record dalla tabella principale:
    - Nessuna azione: se si tenta di cancellare un record referenziato dalla tabella principale, viene sollevato un errore
    - Set null: se si cancella un record referenziato dalla tabella principale, in quella collegata la foreign key viene posta a null
    - Cascade: se si cancella un record referenziato dalla tabella principale, vencono cancellati in cascata anche tutti i record della collegata.

    Nel tuo caso, quindi, avrai la tabella Ordine (secondaria) con una Foreign Key verso Articolo (principale) con vincolo di nessuna azione.

    Il DBMS non ti permetterà di cancellare nessun Articolo che sia referenziato dalla tabella Ordine.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    Generalmente è già così se c'è una relazione di foreign key. Quando si costruisce la foreign key si può anche specificare che tipo di azione intraprendere quando viene tentata la cancellazione di un record dalla tabella principale:
    - Nessuna azione: se si tenta di cancellare un record referenziato dalla tabella principale, viene sollevato un errore
    - Set null: se si cancella un record referenziato dalla tabella principale, in quella collegata la foreign key viene posta a null
    - Cascade: se si cancella un record referenziato dalla tabella principale, vencono cancellati in cascata anche tutti i record della collegata.

    Nel tuo caso, quindi, avrai la tabella Ordine (secondaria) con una Foreign Key verso Articolo (principale) con vincolo di nessuna azione.

    Il DBMS non ti permetterà di cancellare nessun Articolo che sia referenziato dalla tabella Ordine.
    Grazie a te ed anche ad optime per il chiarimento.
    jabjoint

  8. #8
    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Grazie a te ed anche ad optime per il chiarimento.
    Se volessi invece evitare il cancellamento di un Articolo in caso non fosse relazionato?
    Cosa dovei inserire?
    jabjoint

  9. #9
    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Se volessi invece evitare il cancellamento di un Articolo in caso non fosse relazionato?
    Cosa dovei inserire?
    ma hai un applicativo che usa questo db?

  10. #10
    Si in seguito mi servirà per impedirne la cancellazione a qualsiasi applicativo che lo usasse.
    jabjoint

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 © 2025 vBulletin Solutions, Inc. All rights reserved.