robot ha scritto:
Volevo chiedere un altra cosa riguardando la query in dao implica, in SQL Oracle.
Delete * from tabella where id=?
Io voglio includere la cancellazione della foreig key
Cioè delete * from tabella where id=? On cascate delete
Ma non funziona come mai?
Quale la sintassi corretta?
La sintassi del delete è in generale:
DELETE FROM table
[WHERE conditions];
(e non c'è alcun asterisco da mettere dopo DELETE!)
Se però la cancellazione viola qualche vincolo di integrità ... è un altro discorso. Di per sé, non puoi eliminare un record se è referenziato tramite
foreign-key da ALTRE tabelle.
Se vuoi che un record venga eliminato andando
anche a eliminare i record che lo referenziano, allora devi DEFINIRE che una certa foreign-key abbia il
cascading delete. Non ho modo/tempo ora di trovare informazioni ufficiali, ma vedi es.
Foreign Keys with Cascade Delete
E se non puoi farlo a livello di foreign-key .... allora devi eliminare
prima i record che referenziano quel record.