Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764

    Aggiornamento tabella db MySQL

    Devo lanciare uno script per aggiornare una tabella di un db MySQL composta da 200.000 record.
    Come posso spezzare lo script in modo che mi faccia 1.000 aggiornamenti alla volta e non tutti insieme, per evitare questo errore?

    Active Server Pages error 'ASP 0113'

    Script timed out
    /aggiornamento.asp


    The maximum amount of time for a script to execute was exceeded. You can change this limit by specifying a new value for the property Server.ScriptTimeout or by changing the value in the IIS administration tools.

    Questo è lo script.
    codice:
    sql = "SELECT * FROM iscrizionemd5 ORDER BY id ASC"
    SET RS = Conn1.Execute(sql)
    
    Do While Not RS.EOF
    
    IF len(RS("password")) <> 0 and IsNull(RS("salt")) Then
    
    GUIDMD5 = Server.CreateObject("Scriptlet.Typelib").GUID
    minuscolo = lcase(GUIDMD5)
    destra = Right(minuscolo,39)
    salt = left(destra, 36)
    
    password = RS("password")
    iddonna = RS("iddonna")
    
    passwordMD5 = md5(password & salt & username)
    
    sqlresetpassword  = "UPDATE iscrizionemd5 SET password='" & passwordMD5 & "',  salt='" & salt & "' WHERE id=" & id
    Conn1.Execute(sqlresetpassword)
    
    End If
    RS.Movenext
    Loop
    
    RS.Close
    Conn1.Close
    Set RS = Nothing
    Set Conn1 = Nothing

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,657
    per mySql la condizione è LIMIT

    https://www.w3schools.com/sql/sql_top.asp

    codice:
    SELECT column_name(s)
    FROM table_name
    WHERE condition
    LIMIT number;
    
    Example
    SELECT * FROM Customers
    LIMIT 3;

  3. #3
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,657
    il campo id è indicizzato, vero?

  4. #4
    Come minimo la WHERE mettila nella SELECT e non nel codice...

  5. #5
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,657
    Quote Originariamente inviata da optime Visualizza il messaggio
    Come minimo la WHERE mettila nella SELECT e non nel codice...
    nella select? lui vuole fare un update ciclico...

    in ogni caso, in quello che ha scritto nell'update, ci sarebbe un errore: l'id non è definito
    codice:
    WHERE id=" & id
    sempre che non sia solo un codice di esempio


    edit:
    ho capito ora cosa intendi:
    select .... where password <> 0 and salt Is Null
    questo, vero?
    Ultima modifica di Vincent.Zeno; 12-11-2018 a 23:18

  6. #6

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Quote Originariamente inviata da Vincent.Zeno Visualizza il messaggio
    nella select? lui vuole fare un update ciclico...

    in ogni caso, in quello che ha scritto nell'update, ci sarebbe un errore: l'id non è definito
    Per l'id, il codice è troncato e manca la parte finale della query

    codice:
    sqlresetpassword = "UPDATE iscrizionemd5 SET password='" & passwordMD5 & "', salt='" & salt1 & "' WHERE id=" & id

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Niente, mi taglia la query, la posto senza tag #

    sqlresetpassword = "UPDATE iscrizionemd5 SET password='" & passwordMD5 & "', salt='" & salt1 & "' WHERE id=" & id

  9. #9
    che vuol dire "mi taglia la query" ?

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Quote Originariamente inviata da optime Visualizza il messaggio
    che vuol dire "mi taglia la query" ?
    Vuol dire che, qui nel forum, se uso il tag CODICE, non mki fa vedere la query per intero.
    Vedi?

    codice:
    sqlresetpassword = "UPDATE iscrizionemd5 SET password='" &  passwordMD5 & "', salt='" & salt1 & "' WHERE id=" & id
    Questo è ciò che ho messo nel tag CODICE

    sqlresetpassword = "UPDATE iscrizionemd5 SET password='" & passwordMD5 & "', salt='" & salt1 & "' WHERE id=" & id

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 © 2024 vBulletin Solutions, Inc. All rights reserved.