Sto creando menu e sottomenu in una variabile di tabella. (Record figlio genitore tipico nella stessa tabella) ParentID coll è nullo per tutti i menu principali. E per loro figlio ParentID sarà il MenuId di questi menu genitori. (A seconda del tipo di registri utente che questo è stato creato) Ora quello che devo fare è se un particolare genitore non ha un figlio Voglio cancellare questo riproduttore genitore da questa variabile di tabella.
So che posso farlo con il cursore o operazione riga per riga. Posso farlo in altro modo?Elimina record padre se figlio non presente
5
A
risposta
3
Senza vedere la vostra struttura della tabella è difficile dire la query esatto si avrebbe bisogno, ma, se ho capito bene la tua domanda, non vi resta che fare qualcosa di simile this:
DELETE T
FROM MyTable T
WHERE NOT EXISTS(SELECT * FROM MyTable WHERE ParentID = T.MenuID)
AND T.ParentID IS NULL
Questa query esegue una sottoquery correlata per trovare tutti i record di menu che non hanno record figlio. Esso utilizza EXISTS clausola di SQL
1
Si potrebbe fare qualcosa di simile:
delete from yourtable yt where not exists (select * from yourtable yt2 where yt.id = yt2.parentid) and yt.parentid is null
4
Una singola istruzione come questo dovrebbe farlo (come alternativa all'utilizzo esiste):
delete p
from
tblMenu p
left join tblMenu c on p.ID = c.ParentID
where
p.ParentID is null --Ensures that the item to delete is at the top
and c.ParentID is null --Finds top level items with no children
Problemi correlati
- 1. Rails attivo Record Select padre e figlio come uno risultato
- 2. Aggiungi figlio al record padre esistente nel framework entità
- 3. Aggiornamento padre/figlio record con leganti modello in ASP.Net MVC
- 4. Strano padre/figlio NSManagedObjectContext fenomeno
- 5. Maven relazione padre-figlio
- 6. Elimina le raccolte dipendenti insieme all'entità padre
- 7. Elimina record in Doctrine
- 8. Il rollback di un record padre non rimuove i record figli
- 9. JPA OneToMany non elimina child
- 10. PostgreSQL Ricorsivo tramite 2 tabelle padre/figlio
- 11. ElasticSearch padre/figlio su diversi indici
- 12. Come progettare DB con relazioni padre-figlio?
- 13. SQL Server: come ottenere tutti i record figlio dati un id padre in una tabella autoreferenziale
- 14. Valore di ritorno dalle attività padre-figlio
- 15. Restituisce classe figlio dalla classe padre
- 16. Progettazione database SQL, relazione ricorsiva padre-figlio?
- 17. Dati principali Multi livello padre - Contesto figlio
- 18. Accesso ai componenti figlio React dal padre
- 19. Utilizzo di EF 4.1 Inserimento di un record padre e più record figlio come una singola "Unità di lavoro"
- 20. Elasticsearch con più relazioni padre/figlio
- 21. Entity Framework 5 - Eliminazione figlio record
- 22. Sostituisci visualizzazione padre da percorso figlio
- 23. Elimina nodo padre selezionato e nodi figlio: la raccolta è stata modificata; l'operazione di enumerazione non può eseguire
- 24. Come sincronizzare l'esecuzione del processo padre/figlio?
- 25. È possibile accedere a un oggetto figlio dagli errori su un record padre attivo?
- 26. Ricarica finestra padre dalla finestra figlio
- 27. ElasticSearch aggregazione padre-figlio multi livello
- 28. C++ Polymorphism: dalla classe padre al figlio
- 29. Come si impedisce la cancellazione del genitore se ha record figlio?
- 30. CTE ricorsiva per trovare i record padre
Vuoi fare questo come un lavoro di manutenzione (vale a dire una volta), o come evento normale, ogni volta che un bambino viene cancellato? – Oded