Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Aggiornamento massivo su tabella mysql

    Ciao, vi chiedo un parere su come risolvere questo problema:

    - una tabella_anagrafica con i campi: ID, Nome, Matricola, Reparto.
    - una tabella_giornaliera con i campi: ID, Matricola, Data, Pres_Ass

    Adesso alla tabella_giornaliera devo aggiungere anche il campo Reparto, inizialmente non previsto; ho aggiunto la colonna e chiaramente mi ritrovo su tutti i records tutta una serie di campi NULL ( il db è MySQL ).

    E' possibile con un'unica operazione tramite ASP aggiornare il campo Reparto per tutti i records, associando la matricola ?


    Grazie-

  2. #2
    sì, con una UPDATE in JOIN

  3. #3
    Originariamente inviato da optime
    sì, con una UPDATE in JOIN
    Grazie Optime x il consiglio; il codice di aggiornamento è questo si può ottimizzare ( la query ci mette più di qualche secondo per completare l'update... ) ?

    codice:
    <%
    
    sDatabaseConnection = "DRIVER={MySQL ODBC 3.51 Driver};"_
    		    & "SERVER=localhost;"_
    		    & "DATABASE=db_prova;"_
    		    & "UID=root;PWD=ZZZZZZ; OPTION=35;"
    
    Set conn = Server.Createobject("ADODB.Connection")
    conn.open sDatabaseConnection		
    
       SQL = " SELECT " 
       SQL = SQL & " C.*, " 
       SQL = SQL & " S.* "
       SQL = SQL & " FROM " 
       SQL = SQL & " tbl_giornaliera AS C "
       SQL = SQL & " INNER JOIN " 
       SQL = SQL & " tbl_anagrafica AS S " 
       SQL = SQL & " ON S.MATRICOLA = C.MATRICOLA " 
       
    Set objRS = Server.CreateObject("ADODB.Recordset")
    objRS.Open SQL, conn
    
       If not objRS.eof then
       Do While not objRS.eof
    
    response.write objRS("matricola") & "
    " & objRS("reparto") & "
    "
    
    sql_update = " UPDATE "
    sql_update = sql_update & " tbl_giornaliera"
    sql_update = sql_update & " SET "
    sql_update = sql_update & " Reparto = '" & objRS("reparto") & "' "
    sql_update = sql_update & " WHERE "
    sql_update = sql_update & " Matricola = '" & objRS("matricola") & "' "
    Set RS = conn.execute(sql_update) 
    
       objRS.movenext
       Loop 
       end if 
    
    RS.Close
    Set RS = Nothing
    
    objRS.Close
    Set objRS = Nothing
    
    conn.Close
    Set conn = Nothing
    
    %>

  4. #4
    si può fare in un colpo solo

    UPDATE tabella1
    SET campo=tabella2.campo
    FROM tabella1 JOIN tabella2
    ON tabella1.campojoin=tabella2.campojoin


    adattala

  5. #5
    Grazie, ma:

    UPDATE tbl_giornaliera SET Reparto = tbl_anagrafica.Reparto FROM tbl_giornaliera JOIN tbl_organico ON tbl_giornaliera.MATRICOLA = tbl_anagrafica.MATRICOLA


    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

    [MySQL][ODBC 3.51 Driver][mysqld-5.0.45-community-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM tbl_giornaliera JOIN tbl_anagrafica ON tbl_giornaliera' at line 1

    /test/index.asp, line 21


  6. #6
    non so come vada fatta la UPDATE JOIN con MySql...

  7. #7
    Originariamente inviato da optime
    non so come vada fatta la UPDATE JOIN con MySql...
    Allora si fa così:

    UPDATE tbl_giornaliera INNER JOIN tbl_anagrafica ON tbl_giornaliera.matricola = tbl_anagrafica.matricola SET tbl_giornaliera.Reparto = tbl_anagrafica.Reparto
    Ha aggiornato tutti i records ma alla fine ha risposto con:

    Active Server Pages error 'ASP 0113'

    Script timed out

    /test/index.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.
    In cima alla pagina ho previsto Server.ScriptTimeout = 1000

    Ma l'errore è persistente... da aggiornare sono circa 4000 records....

  8. #8
    Originariamente inviato da Vitacillina
    Allora si fa così:



    Ha aggiornato tutti i records ma alla fine ha risposto con:



    In cima alla pagina ho previsto Server.ScriptTimeout = 1000

    Ma l'errore è persistente... da aggiornare sono circa 4000 records....
    fai un controllo allo script dicendo di saltare quelli che hanno il campo non NULL.

  9. #9
    Originariamente inviato da master87tm
    fai un controllo allo script dicendo di saltare quelli che hanno il campo non NULL.

  10. #10
    Originariamente inviato da Vitacillina
    ma sei riuscita ad aggiornarli tutti e 4000 oppure ha dato l'errore dopo i primi 1000?

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