Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    12

    Eliminazione multipla di record, da tabelle uguali, di diversi DB MYSQL

    Questa è la mia situazione:
    Ho più database mysql identici, ma con nomi diversi , sullo stesso server.
    Esempio:db_01,db_02,db_03 e cosi via.
    Voglio eliminare tutti i record di ogni tabella di nome house, presente in ogni DB, che rispettano una certa condizione. VORREI FARE QUESTO CON UNA SOLA QUERY. SO GIA' CHE SI PUO' FARE CON UN LOOP
    E UNA QUERY DI DELETE DENTRO PER OGNI DB. MA NON CERCO QUESTO.
    VOGLIO CAPIRE SE SI PUO' FARE CON UNA SOLA QUERY.
    Ogni database ha la tabella house, e ogni tabella house ha la stessa struttura per ogni DB.
    Quindi le tabelle house sono identiche, MA HANNO DATI DIVERSI. SU OGNI DB LAVORANO PERSONE DIVERSE, quindi i dati nella varie tabelle house sono diversi. STESSA STRUTTURA MA DATI DIVERSI.
    Ho provato con questa query:


    DELETE db_01.house.* , db_02.house.*
    FROM db_01.house , db_02.house
    WHERE db_01.house.data_reminder < DATE_SUB(CURDATE(),INTERVAL 12 MONTH)
    AND
    db_02.house.data_reminder < DATE_SUB(CURDATE(),INTERVAL 12 MONTH)


    La query non da errori, ma se non viene verificata la condizione AND in una delle tabelle,
    non fà nulla, di contro se uso l'OR elimina tutto.
    MI servirebbe un modo per dire che ogni condizione WHERE è a se stante, e vale solo per quella tabella.

    Ho provato anche questa query
    DELETE db_01.house.* , db_02.house.*
    FROM db_01.house
    LEFT JOIN db_02.house ON db_02.house.data_reminder=db_01.house.data_reminder
    WHERE db_01.house.data_reminder < DATE_SUB(CURDATE(),INTERVAL 12 MONTH)

    MA questa query agisce solo sulla tabella house di db_01, e non su tutte.

    Mi potete aiutare?

    Grazie.


  2. #2
    Giustamente devi mettere le condizioni nel WHERE.

    Quindi o trovi una condizione che vada bene per tutti i DB o esegui N query su N db ognuna con una condizione precisa.
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    12
    Quote Originariamente inviata da bomberdini Visualizza il messaggio
    Giustamente devi mettere le condizioni nel WHERE.

    Quindi o trovi una condizione che vada bene per tutti i DB o esegui N query su N db ognuna con una condizione precisa.
    A me serve la condizione. Come scritto nel post, so che posso fare il loop,
    ma devo capire prima se esite una query unica che mi permette di fare la stessa cosa.
    Grazie.

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    12
    Up.

  5. #5
    cos'è, hai fatto una scommessa con qualcuno e vuoi vincerla a tutti i costi?

    Bomberdini ti ha già risposto, se non trovi la condizione giusta nisba

Tag per questa discussione

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.