Che succede se faccio 'INSERT' su una vista?

di il
6 risposte

Che succede se faccio 'INSERT' su una vista?

Ho un database di 5 tabelle, collegate con i rispettivi vincoli di foreign key.Creo una vista in cui ricavo ALCUNI degli elementi da queste tabelle.
Se dovessi fare INSERT nella vista ,e inserire appunto un record,i campi verrebbero inseriti anche nelle rispettive tabelle? Rispettando i vari vincoli?
Tenete conto ad esempio in una tabella c'erano due campi: un id e un campo stringa,di cui nella vista richiamo solo quest'ultimo: tenendo in conto che per il campo id c'è l'autoincremento, nel momento in cui tramite la vista aggiungo solo il campo string,il campo id viene creato automaticmente?

6 Risposte

  • Re: Che succede se faccio 'INSERT' su una vista?

    Non si puo' fare
  • Re: Che succede se faccio 'INSERT' su una vista?

    O santo cielo ,quindi qual è la soluzione più sensata per farlo?
    Vi descrivo il database:
    LIBRO (idlibro,titolo,anno,ideditore,idTema)
    AUTORE(idAutore)
    EDITORE(idEditore)
    TEMA(idTema)
    DETTAGLIAUTORE(idLibro,idAutore)

    nella form sulla mia pagina web ho bisogno di inserire questi elementi di un nuovo libro:
    titolo,anno,editore,autore,tema
  • Re: Che succede se faccio 'INSERT' su una vista?

    Per definizione una vista è in sola lettura quindi non mi pare proprio tu possa inserire qualcosa ...

    Esegui tutte le INSERT che servono nelle varie tabelle racchiuse in una transazione
  • Re: Che succede se faccio 'INSERT' su una vista?

    oregon ha scritto:


    Esegui tutte le INSERT che servono nelle varie tabelle racchiuse in una transazione
    Che tradotto nel linguaggio delle servlet si dovrebbe fare con il comando
    con.commit();
    giusto?
    Ma io credevo che questo servisse solo a far si che se l'inserimento in una tabella non dovesse andare a buon fine allora non viene inserito nulla nemmeno nelle altre.Invece garantisce anche l'inserimento e l'autoaggiornamento di quel campo nelle altre tabelle?
  • Re: Che succede se faccio 'INSERT' su una vista?

    No ... serve a quello che hai detto, nessun "autoinserimento" ...

    Il fatto è che tutti gli ID coinvolti (nel caso di contatori autoincrementanti) saranno coerenti in quanto altri utenti che fanno richieste contemporanee non influiranno.
  • Re: Che succede se faccio 'INSERT' su una vista?

    Ciao,
    allora devi fare l insert a mano x ogni tabella.
    ovviamente devi eseguirle in modo da popolare prima le pk, poi le fk relative!
    x la transazione, nn è necessaria, xò se una insert ti và male puoi tornare alla situazione precedente senza dover effetuare cancellazioni a mano...
Devi accedere o registrarti per scrivere nel forum
6 risposte