SQLyog: Copia i dati parziali?
Domanda
Per testare codice che sto copiando i dati da un database dal vivo per un database di test utilizzando di SQLyog "Copia di diversi host" opzione. La maggior parte del tempo, questo va bene. Ma per alcune tabelle il set di dati è assolutamente enorme e ho solo bisogno di un relativamente piccolo sottoinsieme di dati per il test. La finestra di dialogo Copia host diverso ti dà la possibilità di copiare struttura solo o struttura e dei dati.
Se voglio solo dati parziali, devo eseguire una query select * on table where condition
, esportare i risultati come una query SQL, l'importazione quella query nell'ospite di test ed eseguirlo. Anche se questo funziona, non è esattamente una procedura divertente, soprattutto date le circostanze in cui anche il sottoinsieme "piccolo" dei dati di test è ancora un sacco di righe. Se alcuni dei dati è stato già copiato da quello aggiunge ulteriori complicazioni, come devo scrivere una query per ottenere un elenco di chiavi sul target e quindi aggiungere una condizione where key not in (key list)
sulla condizione principale.
C'è un modo per ottenere il "copia host diverso" funzione per copiare solo selettivamente le righe al database di destinazione?
Soluzione
Al momento non è possibile utilizzare una condizione in cui su singole righe della href="http://www.webyog.com" rel="nofollow"> SQLyog strumento copia Che cosa si può fare ora è quello di creare un piccolo 'manichino' tavolo sulla fonte e copiare questo. Il flusso di lavoro potrebbe essere come: 1) CREATE TABLE 2) Ora copia 3) RENAME Ciò consentirà di ridurre il traffico di rete di prendere in considerazione solo solo le righe che si desidera trasferire. E eviterete l'esportazione in un file come la 'riduzione' è conservato all'interno del server di origine (non comporta file system o di rete). newtable
AS SELECT * FROM WHERE oldtable
... newtable
utilizzando SQLyog GUI e prossima goccia sulla fonte, se necessario newtable
sul bersaglio, se necessario