Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Richiesta query

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    221

    Richiesta query

    Salve a tutti.
    Sto utilizzando nucleus come gestore di news ed ora avrei la necessità di inserire un vecchio articolo nel database e di sql non so niente.

    Vi chiedo: è possibile, tramite una query, aumentare di 1 il valore del campo "inumber", che è l'identificativo dell'articolo, a partire dalla posizione 6 così da liberare quel record per il vecchio articolo?
    Il nome della tabella è "nucleus_item".

    Grazie e ciao

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Salve concittadino.
    Non è una buona prassi quella di andare a modificare l'identificativo di un record.
    Cmq la query di aggiornamento è
    UPDATE nometabella SET id = inumber + 1 where id = inumber;

    dove (inumber + 1) è uguale direttamente al valore numerico. Nel tuo caso settato a 7.
    Io cmq lascerei l'id vuoto.

    P.S. Ma sei chi penso tu sia, il mister?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    221
    Dovrei quindi digitare
    UPDATE nometabella SET 7 = inumber + 1 where 6 = inumber;
    Giusto?

    Quanto al mister forse stai confondendo. Io non sono di SS.

    Ciao

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Dovrei quindi digitare
    UPDATE nometabella SET 7 = inumber + 1 where 6 = inumber;
    Giusto?

    No. Per niente.

    Io ti ho scritto la sintassi. Poi la adatti al tuo caso.
    Scrivi UPDATE (nometabella è il nome della tabella che vuoi aggiornare)
    poi scrivi set (al posto di id scrivi il nome del campo della tua tabella che contiene il valore da modificare) = il valore che vuoi assegnare where (il nome del campo della tua tabella = al valore che aveva prima).
    Aiuto è molto più incasinato a spiegartelo così di come te l'ho detto prima.

    Cmq hai scritto provenienza Sassari e siccome un mio amico le cui iniziali sono M.D. doveva registrarsi uno di questi giorni pensavo fossi tu.
    Ciao.

    Ti ripeto cmq che non ha senso modificare la chiave primaria della tabella. Se c'è un vuoto tra due id non succede niente.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    221
    Il comando che ho dato è stato
    UPDATE nucleus_item SET inumber = inumber + 1 where inumber = 6;
    ma genera un errore, probabilmente perchè 6 non è l'ultimo record

    Infatti dando
    UPDATE nucleus_item SET inumber = inumber + 1 where inumber = 10;
    con 10 ultimo record, questo viene modificato in 11.

    Ti ripeto cmq che non ha senso modificare la chiave primaria della tabella. Se c'è un vuoto tra due id non succede niente
    Il vuoto lo devo creare io per infilarci dentro un vecchio articolo.
    Forse ho espresso male il mio problema.
    Ho una serie di articoli identificati dal campo inumber con 1,2,3, ... , 10.
    Ho la necessità di traslare questi numeri di una unità a partire dall'inumber 6, così da liberare questa posizione per un vecchio articolo.
    Ora che son 10 posso farlo a mano, ma cercavo una query per quando saranno di più.

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Bhè, è ovvio che questa operazione devi farla a partire dall'id più alto. Se incrementi un id da 5 a 6 e c'è già un altro record con quell'identificativo è ovvio che ti dica che è un valore duplicato.
    Sì,ho capito il tuo problema ma cmq non è indispensabile che per forza gli articoli abbiano tutti un id consecutivo.
    Allora ogni volta che elimini un record che fai, ripeti sempre questa operazione?

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    221
    Bhè, è ovvio che questa operazione devi farla a partire dall'id più alto. Se incrementi un id da 5 a 6 e c'è già un altro record con quell'identificativo è ovvio che ti dica che è un valore duplicato.
    Infatti pensavo ci fosse un modo per farlo in automatico...

    Sì,ho capito il tuo problema ma cmq non è indispensabile che per forza gli articoli abbiano tutti un id consecutivo.
    Se devi passare a quello sucessivo avanzi in base al suo identificativo e non alla data, nonostante anche questa andrà modificata.

    Allora ogni volta che elimini un record che fai, ripeti sempre questa operazione?
    Quello delle eliminazione di un articolo non è un problema. Il "buco" può rimanere.

    Grazie ugualmente.

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.