On 30/04/17 08:41, Paolo Redaelli wrote:
Il 29/04/2017 22:49, Alessandro Pellizzari ha scritto:
On 29/04/17 14:10, Giuliano Curti wrote:
UPDATE mee SET r_co = (SELECT max(r_co) FROM mee) + r_to - r_fr WHERE
r_id =
la funzione UPDATE itera su tutti i record, la funzione SELECT
nidificata, che
Informazione aggiuntiva: si lavora sempre su una sola riga, anche perché
r_to è sempre >= r_fr, quindi dopo ogni aggiornamento max(r_co) di
solito cambia. (dico di solito perché in casi molto particolari r_fr e
r_to potrebbero essere uguali). se per caso dovessi aggiornare più di una
riga la su
Il 29/04/2017 22:49, Alessandro Pellizzari ha scritto:
> On 29/04/17 14:10, Giuliano Curti wrote:
>
>>> UPDATE mee SET r_co = (SELECT max(r_co) FROM mee) + r_to - r_fr WHERE
>>> r_id =
>> la funzione UPDATE itera su tutti i record, la funzione SELECT
>> nidificata, che anch'essa itera su tutti i re
On 4/29/17, Federico Di Gregorio wrote:
> ...
On 4/29/17, Alessandro Pellizzari wrote:
> On 29/04/17 14:10, Giuliano Curti wrote:
>
Federico e Alessandro, grazie;
ciao,
giuliano
On 29/04/17 14:10, Giuliano Curti wrote:
>> UPDATE mee SET r_co = (SELECT max(r_co) FROM mee) + r_to - r_fr WHERE
>> r_id =
> la funzione UPDATE itera su tutti i record, la funzione SELECT
> nidificata, che anch'essa itera su tutti i record, non risulta
> penalizzante? si avrebbe un algoritmo di
Il motore del database e in grado di capire quando una subquery non dipende
dalla riga dell'update ed eseguirla una volta sola anche in casi molto ma molto
più complessi di questo.
Ovviamente puoi cercare di sostituirti all'ottimizzatore scrivendo delle stored
procedure ogni volta che la query
On 4/29/17, Federico Di Gregorio wrote:
> Puoi fare:
>
> UPDATE mee SET r_co = (SELECT max(r_co) FROM mee) + r_to - r_fr WHERE r_id =
> ...
domanda x capire, non per obiettare :-)
la funzione UPDATE itera su tutti i record, la funzione SELECT
nidificata, che anch'essa itera su tutti i record, non
On 29/04/2017 10:17, Federico Di Gregorio wrote:
Puoi fare:
UPDATE mee SET r_co = (SELECT max(r_co) FROM mee) + r_to - r_fr WHERE
r_id = ...
Questa soluzione è sicuramente corretta solo se l'update va fatta su una
singola riga.
Se invece si devono aggiornare in blocco N righe (i.e. 'where
Puoi fare:
UPDATE mee SET r_co = (SELECT max(r_co) FROM mee) + r_to - r_fr WHERE r_id = ...
Ciao,
Federico
Il 28 aprile 2017 20:53:07 CEST, Leonardo Boselli ha
scritto:
>Un po'ot ma chiedere non costa nulla:
>ho un file SQL che contiene la tabella 'mee' con le colonne r_id r_fr
>r_to
>e r_co
Aveva chiesto una soluzione elegante! :)
federico
Il 28 aprile 2017 21:10:53 CEST, Gian Uberto Lauri ha scritto:
>Store procedure
>
>Sent from my smartphone
>
>> On 28 Apr 2017, at 20:53, Leonardo Boselli
>wrote:
>>
>> Un po'ot ma chiedere non costa nulla:
>> ho un file SQL che contiene la t
Store procedure
Sent from my smartphone
> On 28 Apr 2017, at 20:53, Leonardo Boselli wrote:
>
> Un po'ot ma chiedere non costa nulla:
> ho un file SQL che contiene la tabella 'mee' con le colonne r_id r_fr r_to e
> r_co dove r_id è un intero(5) e r_co un decimale(8,2)
> esiste un comando che
Un po'ot ma chiedere non costa nulla:
ho un file SQL che contiene la tabella 'mee' con le colonne r_id r_fr r_to
e r_co dove r_id è un intero(5) e r_co un decimale(8,2)
esiste un comando che mi faccia:
UPDATE mee SET r_co= *non_lo_so* WHERE r_id = *qualcosa*;
*qualcosa* è l'id unico del record
12 matches
Mail list logo